# problem mit fopen



## Navigato (5. Oktober 2004)

Hallo,

ich habe ein Problem mit meinem Skript. Wenn ich eine Datei mit fopen öffnen möchte  bekomme ich die Fehlermeldung:

nagios@server:/usr/lib/nagios/plugins> ./check_procs /usr/lib/nagios/cfg/plugin_param.ini
Speicherzugriffsfehler
nagios@server:/usr/lib/nagios/plugins>

 

woran liegt das nur so ganz neben bei  das ding wird unter Suse9.1 ausgeführt. (komisch unter Solaris 9 fuktioniert es bestens!  )


AUSZUG AUS MEINEM PROG:

int main(int argc, char* argv[])
{
	if (argv[1]==NULL){
		cout << "Keine Parameter übergeben )-:" << endl;
		return 1;
	}

[...]


FILE   	*stream;
FILE 	*tmp;  
FILE *file_inifile;
std::string str_ini_file; //= "/usr/local/lib/nagios/cfg/plugin_param.ini";
std::string str_line;
std::string server_path;

str_ini_file += argv[1];

[...]


/*--------------------------------------------------------------------------*/
/*Öffnet die Datei str_ini_file und durchsucht diese nach Key-Value Pairs */

if ((file_inifile = fopen(str_ini_file.c_str(), "r")) != NULL) // AN DIESER STELLE
{
           while (!feof(file_inifile))
           {
                       fgets( line, 1000, file_inifile);
                       str_line = line;

                       while(line[0] == 32)
                       {
                                   str_line = str_line.substr(1,str_line.length());
                                   strcpy(line,str_line.c_str());

                       }if (line[0] == '[')
                       	{
                                   section[i_section_count].str_section = line;
                                   i_section_count++; 

                       	}else if (!(line[0]==';' || line[0] == 10 || line[0] == 13 || feof(file_inifile)))
                       		{
                                   section[i_section_count-1].str_value[section[i_section_count-1].i_value_count] = line;
                                   section[i_section_count-1].str_value[section[i_section_count-1].i_value_count] = section[i_section_count-1].str_value[section[i_section_count-1].i_value_count].substr(0,section[i_section_count-1].str_value[section[i_section_count-1].i_value_count].length()-1);
                                   section[i_section_count-1].i_value_count++;
                      		 }
           }

fclose(file_inifile);

[...]


Gruß
Navigato


----------

