在我的代码中,我需要执行/bin/bash
,但我不想在不传递任何参数的情况下执行它。我写了这个:
execl("/bin/bash", NULL);
然后,通过一些研究,我意识到我还需要添加类型转换:
execl("bin/bash", (char*) NULL);
但 GCC 仍然给我警告:
main.c:18:5: warning: null argument where non-null required (argument 2) [-Wnonnull]
if(execl("/bin/bash", (char*) NULL) == -1) {
^
main.c:18:5: warning: not enough variable arguments to fit a sentinel [-Wformat=]
这样做的正确方法是什么,我误解了什么,还是我使用了完全错误的函数调用?