如何在UBUNTU中使用execl函数删除文件
嗨,我必须在C程序结束时删除一个文件,但我做不到。我试着用如何在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 您将看到程序执行的所有系统调用,以及相应的返回值。在这种
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