[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to delete a file??

Pierre Phaneuf wrote:
> Pierre Phaneuf wrote:
> > > I don't think you should use 'remove' because it's not portable.
> >
> > According to remove(3):
> >
> >        ANSI C, SVID, AT&T, POSIX, X/OPEN, BSD 4.3
> And according to remove(3C) on Solaris 2.7:
>      For files, remove() is identical to   unlink().  For  direc-
>      tories, remove() is identical to rmdir().
> There is no "CONFORMING TO" sections in Solaris 2.7 man pages it seems
> (I checked a few other man pages for functions I knew were standard to
> make sure), so I cannot be sure of the conformance level on Solaris.

Well, irrespective of what the various standards say - 'remove' on
a libc4/5 Linux box won't delete a directory - so if you need the
functionality of a call that will blindly wipe out either a file
or a directory, you can't use 'remove' without dooming your program
to failure on about half the Linux boxes out there.

It's pretty irrelevent IMHO - I can't imagine many situations in
a program where you go blindly deleting a file without knowing
whether it's a directory or not!  Yikes!

If you know which you have then unlink and rmdir work fine
and are VERY portable.

Steve Baker                  http://web2.airmail.net/sjbaker1
sjbaker1@airmail.net (home)  http://www.woodsoup.org/~sbaker
sjbaker@hti.com      (work)