Ich habe dies bereits in einem Kommentar beantwortet und ein paar Leute haben Ihnen gesagt, was Sie falsch gemacht haben, aber ich habe beschlossen, einen kleinen Beispielcode mit Fehlerprüfung hinzuzufügen:
chdir("/var");
FILE *scriptFile = fopen("wiki.txt", "w");
if( !scriptFile ) {
fprintf(stderr, "Error opening file: %s\n", strerror(errno));
exit(-1);
} else {
fputs("tell application \"Firefox\"\n activate\n",scriptFile);
fclose(scriptFile);
}
Nun wird eine Fehlermeldung angezeigt, wenn die Datei nicht geöffnet werden kann, und es wird beschrieben, warum (in Ihrem Fall: Zugriff verweigert). Zu Testzwecken können Sie dies erreichen, indem Sie 1) den Dateinamen durch einen weltweit beschreibbaren Namen ersetzen, z. B. "/tmp/wiki.txt"
; oder 2) Sie führen Ihr Dienstprogramm mit den Rechten sudo ./your_command_name
.