Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-02-17 22:39:52 +0300
committerChristopher Faylor <me@cgf.cx>2000-02-17 22:39:52 +0300
commit8a0efa53e44919bcf5ccb1d3353618a82afdf8bc (patch)
tree68c3dbf3f2c6fd5d49777def9914d77b5cd4589d /newlib/libc/stdio/remove.c
parent1fd5e000ace55b323124c7e556a7a864b972a5c4 (diff)
import newlib-2000-02-17 snapshot
Diffstat (limited to 'newlib/libc/stdio/remove.c')
-rw-r--r--newlib/libc/stdio/remove.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/newlib/libc/stdio/remove.c b/newlib/libc/stdio/remove.c
new file mode 100644
index 000000000..074dd9ac8
--- /dev/null
+++ b/newlib/libc/stdio/remove.c
@@ -0,0 +1,69 @@
+/*
+FUNCTION
+<<remove>>---delete a file's name
+
+INDEX
+ remove
+
+ANSI_SYNOPSIS
+ #include <stdio.h>
+ int remove(char *<[filename]>);
+
+ int _remove_r(void *<[reent]>, char *<[filename]>);
+
+TRAD_SYNOPSIS
+ #include <stdio.h>
+ int remove(<[filename]>)
+ char *<[filename]>;
+
+ int _remove_r(<[reent]>, <[filename]>)
+ char *<[reent]>;
+ char *<[filename]>;
+
+DESCRIPTION
+Use <<remove>> to dissolve the association between a particular
+filename (the string at <[filename]>) and the file it represents.
+After calling <<remove>> with a particular filename, you will no
+longer be able to open the file by that name.
+
+In this implementation, you may use <<remove>> on an open file without
+error; existing file descriptors for the file will continue to access
+the file's data until the program using them closes the file.
+
+The alternate function <<_remove_r>> is a reentrant version. The
+extra argument <[reent]> is a pointer to a reentrancy structure.
+
+RETURNS
+<<remove>> returns <<0>> if it succeeds, <<-1>> if it fails.
+
+PORTABILITY
+ANSI C requires <<remove>>, but only specifies that the result on
+failure be nonzero. The behavior of <<remove>> when you call it on an
+open file may vary among implementations.
+
+Supporting OS subroutine required: <<unlink>>.
+*/
+
+#include <stdio.h>
+
+int
+_remove_r (ptr, filename)
+ struct _reent *ptr;
+ _CONST char *filename;
+{
+ if (_unlink_r (ptr, filename) == -1)
+ return -1;
+
+ return 0;
+}
+
+#ifndef _REENT_ONLY
+
+int
+remove (filename)
+ _CONST char *filename;
+{
+ return _remove_r (_REENT, filename);
+}
+
+#endif