Hallo zusammen,
ich darf mich Uni-bedingt mal wieder etwas mit C ( C90) auseinandersetzen. Jetzt habe ich hier ein schönes Schnipselchen Code, welches auch einwandfrei funktioniert.
Mein Problem: Ich öffne mit fopen() ein Logfile, um dann mit printf() hineinzuschreiben. (siehe code unten) An sich kein Problem. Wenn ich beim Logfile aber mit "chmod 000 ./nameOfLogfile.log" die Rechte ändere bekomme ich nur noch einen Segfault. (siehe auch unten)
Hat jemand eine Idee, wie ich das abfangen kann? Wegen einem gesperrten Logfile muss ja nciht gleich das ganze Programm den Bach runter gehen...
Gruß Amiki
Minimalbeispiel Code:
1 2 3 4 5 6 7 8 | #include <stdio.h> int main(int argc, const char* argv[]) { char* text = "foo bar"; FILE* logfile = fopen("nameOfLogfile.log", "a+"); fprintf(logfile,"%s\n",text); return(0); } |
Ausgabe Konsole:
amiki@HAL-9000:~/beispiel$ ls mini.c amiki@HAL-9000:~/beispiel$ gcc -std=c90 -Wall -pedantic ./mini.c -o mini amiki@HAL-9000:~/beispiel$ ./mini amiki@HAL-9000:~/beispiel$ cat ./nameOfLogfile.log foo bar amiki@HAL-9000:~/beispiel$ chmod 000 ./nameOfLogfile.log amiki@HAL-9000:~/beispiel$ ./mini Segmentation fault (core dumped) amiki@HAL-9000:~/beispiel$