remove, _wremove
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

remove, _wremove

Delete a file.

int remove(
   const char *path 
int _wremove(
   const wchar_t *path 


Path of file to be removed.

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 the file is open, or to ENOENT to indicate that the filename or path was not found or that the path specifies a directory.

See _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these and other return codes.


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


Routine Required header Compatibility
remove <stdio.h> or <io.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
_wremove <stdio.h> or <wchar.h> Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


// crt_remove.c
/* This program uses remove to delete crt_remove.txt */

#include <stdio.h>

int main( void )
   if( remove( "crt_remove.txt" ) == -1 )
      perror( "Could not delete 'CRT_REMOVE.TXT'" );
      printf( "Deleted 'CRT_REMOVE.TXT'\n" );

Input: crt_remove.txt

This file will be deleted.



See Also

File Handling Routines | _unlink | Run-Time Routines and .NET Framework Equivalents

© 2015 Microsoft