使用 exec() 更改 C 中的权限
如何使用 exec 对文件执行 chmod 命令?如果有人能给我提供代码,我将不胜感激。
How can I implement chmod command on file by using exec? I would appreciate if anyone can provide me a code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不会向您展示一个工作模型,但 execve() 的工作原理如下:
... 处理分叉 ....
... 处理 execve() 失败 ....
留下了 execve() 的第三个参数作为供读者研究的练习,NULL 可能适合也可能不适合您的作业。此外,由您决定
res
应该是什么类型以及成功时它应该等于什么。注意转换 NULL。单一 UNIX 规范通常是一个不错的起点。
I'm not going to show you a working model, but execve() works like this:
... handle forking ....
... handle execve() failing ....
The third argument to execve() is left as an exercise for the reader to research, NULL may or may not be suitable for your assignment. Additionally, its up to you to determine what type
res
should be and what it should equal on success. Notice casting NULL.The single UNIX specification is usually a good place to start.
从 C 代码中,直接调用 chmod(2) 几乎肯定是比经历 fork() 和 exec() 的整个麻烦。
诚然,大部分麻烦是 fork() 部分,如果您的程序在 exec() 调用之后不需要执行任何其他操作,那么只需运行 exec() 系列函数之一而不进行分叉就相当不错了(对于练习使用 exec(),即)。
From C code, directly calling chmod(2) will almost certainly be a better choice than going through the whole hassle of fork()ing and exec()ing.
Admittedly, most of that hassle is the fork() part, and if your program does not need to do anything else after the exec() call, then just running one of the exec() family functions without forking is reasonably fine (for an exercise in using exec(), that is).
试试这个: http://support.sas.com/documentation /onlinedoc/sasc/doc/lr2/execve.htm
另请参阅: http://linux.about.com/library/cmd/blcmdl3_execvp.htm
编辑:我从未真正编译过...与使用 paramList 的用户一起更新。
try this: http://support.sas.com/documentation/onlinedoc/sasc/doc/lr2/execve.htm
also see: http://linux.about.com/library/cmd/blcmdl3_execvp.htm
Edit: I never actually compiled... updated with users working paramList.