1 Theorie | |
→ | 1.2 Häufig auftretende Problemstellungen |
Übersicht |
Datei löschen unter Windows |
Datei löschen unter Linux/Unix |
Aufgabe |
Zum Löschen von Dateien kann unter Windows die Funktion _unlink(), unter Linux/Unix die Funktion unlink() benutzt werden.
Die Beispielprogramme erwarten ein Kommandozeilenargument: den Dateinamen einer zu löschenden Datei.
/** @file ex044.c Demo-Programm zum Datei-Loeschen unter Windows
ex044 <Dateiname>
*/
/* Copyright (C) 2014-2017 - HS Schmalkalden. All rights reserved. */
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
/** Hauptprogramm.
@param argc Anzahl der Kommandozeilen-Argumente.
@param argv Feld mit den Kommandozeilen-Argumenten.
@return 0 bei Erfolg, alle anderen Werte zeigen Fehler an.
*/
int
main(int argc, char *argv[])
{
int exc = EXIT_FAILURE;
/* Kommandozeilen-Argumente pruefen, es muss 1 Dateiname angegeben sein. */
if (2 != argc) {
fputs("FEHLER: Falsche Anzahl an Kommandozeilen-Argumenten!\n", stderr);
fputs("Es muss ein Dateiname angegeben werden!\n", stderr);
fflush(stderr);
goto finished;
}
/* Datei loeschen */
if (0 != _unlink(argv[1])) {
fprintf(
stderr,
"FEHLER: Datei \"%s\" konnte nicht geloescht werden!\n",
argv[1]
);
fflush(stderr);
goto finished;
}
/* Erfolg vermerken */
exc = EXIT_SUCCESS;
finished:
exit(exc); return exc;
}
/* vim: set ai sw=4 ts=4 expandtab : */
Liegt der Dateiname als WCHAR- bzw. TCHAR-String vor, muss anstelle von _unlink() die Funktion _wunlink() bzw. _tunlink() verwendet werden.
/** @file ex043.c Demo-Programm zum Datei-Loeschen unter POSIX
ex043 <Dateiname>
*/
/* Copyright (C) 2014 - HS Schmalkalden. All rights reserved. */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
/** Hauptprogramm.
@param argc Anzahl der Kommandozeilen-Argumente.
@param argv Feld mit den Kommandozeilen-Argumenten.
@return 0 bei Erfolg, alle anderen Werte zeigen Fehler an.
*/
int
main(int argc, char *argv[])
{
int exc = EXIT_FAILURE;
/* Kommandozeilen-Argumente pruefen, es muss 1 Dateiname angegeben sein. */
if (2 != argc) {
fputs("FEHLER: Falsche Anzahl an Kommandozeilen-Argumenten!\n", stderr);
fputs("Es muss ein Dateiname angegeben werden!\n", stderr);
fflush(stderr);
goto finished;
}
/* Datei loeschen */
if (0 != unlink(argv[1])) {
fprintf(
stderr,
"FEHLER: Datei \"%s\" konnte nicht geloescht werden!\n",
argv[1]
);
fflush(stderr);
goto finished;
}
/* Erfolg vermerken */
exc = EXIT_SUCCESS;
finished:
exit(exc); return exc;
}
/* vim: set ai sw=4 ts=4 expandtab : */