From: Christian Weisgerber (naddy_at_mips.rhein-neckar.de)
Date: 29. Dec 1998
In article <199812281903.UAA28880_at_subnet.pirate.de>,
Mark Seuffert Pirates <captain_at_pirate.de> wrote:
> > 1) Advanced Programming In The UNIX Environment ("APUE", ISBN 0-201-56317-7)
Diese Empfehlung unterstütze ich übrigens unbedingt. *Das* Buch zur
Unix-Systemprogrammierung. Es gibt auch ein "Programming in the UNIX
Environment", aber das beschäftigt sich, soweit ich das gesehen habe,
eigentlich nur mit allgemeiner C-Programmierung unter Verwendung der
Standard-Library.
> > 2) UNIX Nework Programming ("UNP", ISBN 0-13-490012-X)*
(Muss ich endlich mal lesen...)
> Eine Doppelfrage vorab, vielleicht kann mir da jemand helfen:
> 1. Wie kann ich eine Datei "test" im Homeverzeichnis des
> aktuellen Users löschen?
Fragmentarisch:
passwd = getpwuid(getuid());
strncpy(fname, passwd->pw_dir, ...);
strncat(fname, "/test", ...);
unlink(fname);
> 2. Wie kann ich unterscheiden falls das Löschen fehlschlägt, ob die Datei
> gar nicht existiert hat oder ob die entsprechenden Zugriffsrechte
> fehlen?
if (unlink(...) < 0) {
switch (errno) {
case ENOENT:
...
break;
case EPERM: case EACCES:
...
break;
default:
...
}
}
Die Fehlerwerte in errno sind nicht unbedingt intuitiv, z.B. wenn die
Datei ein Directory ist, kommt auch EPERM zurück.
--
Christian "naddy" Weisgerber naddy_at_mips.rhein-neckar.de
100+ SF Book Reviews: <URL:http://home.pages.de/~naddy/reviews/>
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET