jam*_*o00 3 c gcc function exec system-calls
根据exec引用,对exec(或一般的堆栈检查vararg函数)的调用在(char*)NULL
参数列表的末尾需要一个aka 0.然而,海湾合作委员会抱怨以下代码
char cmdFullPath[4096]; //yes this 4096 thing is bad coding practice
...
execl(cmdFullPath, (char*)NULL);
//warning: not enough variable arguments to fit a sentinel
Run Code Online (Sandbox Code Playgroud)
谁知道什么是错的?
该参考文献说原型是
execl(const char * path, const char * arg, ...)
Run Code Online (Sandbox Code Playgroud)
我读到2个参数+(char*)NULL
就像是 :
execl(cmdFullPath, (const char*)NULL, (char*)NULL);
Run Code Online (Sandbox Code Playgroud)
从页面:
#include <unistd.h>
int main() {
execl("/bin/ls", "ls", "-l", (char *)NULL);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9668 次 |
最近记录: |