2016-06-06 3 views
-1

Derzeit wird die Datei erstellt und überschrieben. Ich versuche es so zu bekommen, dass, wenn die Datei bereits existiert, das Programm beendet wird. offen muss verwendet werden.C So verhindern Sie das Überschreiben der Datei

if ((dest = open(argv[2], O_WRONLY | O_CREAT, 0644)) == -1) { 
    printf("Error File %s exists", argv[2]); 
    return 3; 
} 
+1

'man perror' Verwenden Sie prinft nicht zum Schreiben von Fehlermeldungen. Es geht in den falschen Stream und es bietet nicht genügend Informationen. (In diesem Fall wird nicht viel mehr Information verfügbar sein, aber im Allgemeinen ist 'perror' viel nützlicher.) –

+0

Hast du die Manpage gelesen? Warum nicht? Was hast du nicht verstanden? – Olaf

Antwort

6

Nur O_EXCL verwenden:

O_EXCL Stellen Sie sicher, dass dieser Aufruf die Datei erstellt: Wenn dieser Flag in Verbindung mit O_CREAT, angegeben ist und Pfadname bereits vorhanden ist, dann open() fehl.

Verwandte Themen