Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在UBUNTU中使用execl函数删除文件_C_Linux_Shell - Fatal编程技术网

如何在UBUNTU中使用execl函数删除文件

如何在UBUNTU中使用execl函数删除文件,c,linux,shell,C,Linux,Shell,嗨,我必须在C程序结束时删除一个文件,但我做不到。我试着用 execl("/usr/bin/rm","rm","example.txt",NULL); 但它不起作用。如果您能提供帮助并表示感谢,我将不胜感激。为什么不试试stdio.h中的remove(const char*filename)函数?正如其他人所指出的,有更有效的方法来删除文件 如果您想知道程序失败的原因,只需在strace下运行它: strace your-binary 您将看到程序执行的所有系统调用,以及相应的返回值。在这种

嗨,我必须在C程序结束时删除一个文件,但我做不到。我试着用

execl("/usr/bin/rm","rm","example.txt",NULL);

但它不起作用。如果您能提供帮助并表示感谢,我将不胜感激。

为什么不试试stdio.h中的
remove(const char*filename)
函数?

正如其他人所指出的,有更有效的方法来删除文件

如果您想知道程序失败的原因,只需在
strace
下运行它:

strace your-binary

您将看到程序执行的所有系统调用,以及相应的返回值。在这种情况下,我强烈怀疑
rm
不在
/usr/bin
中,而是在
/bin
中。您可以通过执行
哪个rm

来检查它。事实上,我不知道stdio.h中有删除文件的功能,是的,它工作正常。谢谢您的回复。谢谢您的帮助,是的,我意识到它在/bin中。它不工作的原因是
rm
生活在
/bin/rm
中,不在
/usr/bin/rm
中。但是,正如其他人所回答的那样,无论如何,删除文件不是一个好方法。你真的应该读一本关于Linux编程的好书,比如,你应该阅读
man2 intro