remove, _wremove

Visual Studio 6.0

Delete a file.

int remove( const char *path );

int _wremove( const wchar_t *path );

Routine Required Header Compatibility
remove <stdio.h> or <io.h> ANSI, Win 95, Win NT
_wremove <stdio.h> or <wchar.h> Win NT

For additional compatibility information, see Compatibility in the Introduction.


LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version

Return Value

Each of these functions returns 0 if the file is successfully deleted. Otherwise, it returns –1 and sets errno either to EACCES to indicate that the path specifies a read-only file, or to ENOENT to indicate that the filename or path was not found or that the path specifies a directory. This function fails and returns -1 if the file is open.



Path of file to be removed


The remove function deletes the file specified by path. _wremove is a wide-character version of _remove; the path argument to _wremove is a wide-character string. _wremove and _remove behave identically otherwise. All handles to a file must be closed before it can be deleted.

Generic-Text Routine Mappings

TCHAR.H Routine _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined
_tremove remove remove _wremove


/* REMOVE.C: This program uses remove to delete REMOVE.OBJ. */

#include <stdio.h>

void main( void )
   if( remove( "remove.obj" ) == -1 )
      perror( "Could not delete 'REMOVE.OBJ'" );
      printf( "Deleted 'REMOVE.OBJ'\n" );


Deleted 'REMOVE.OBJ'

File Handling Routines

See Also   _unlink