我需要这样的操作:ls -r
, mv
, copy
, delete
, rm -rf
从C程序中调用。最好的方法是什么?通过调用system()
调用或自己编写这些功能来调用这些命令?
execv
应该可以。
execv("ls", "-r", NULL);
它应该也适用于其他命令(虽然没有测试)
链接我会重新编码它们,因为我对学习如何这样做很感兴趣。但这比通过system(3)
调用它们要麻烦得多。您还可以在需要时使用rename(2)
和其他系统调用。
所以如果你想快速完成,使用system(3)
;否则,玩得开心:)
我的建议:首先使用system(3)
或exec*(3)
(这样您就可以从您使用的二进制文件中受益于已经实现的功能,如-r
),当您完成程序的其余部分时,您可以享受改进的乐趣。