### 4.51 `remove`—delete a file's name

Synopsis

         #include <stdio.h>
         int remove(char *filename);

         int _remove_r(struct _reent *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`.