Re: C++ Tutorials

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

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/>


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET