如何解决execl找不到vim
在Linux上的C程序中,我派生了一个子进程并在文件上调用vim
。这行是
execl(editor,path,NULL);
其中editor
是指向const char*
的{{1}},而"vim"
是指向path
的{{1}}。
在strace下,我明白了
const char*
但是,vim已安装在我的计算机上(以及"../grr/engine/nfaRuntime.c"
中),并且指定的文件确实存在。我也有阅读权限。我已通过[pid 2022] execve("vim",["../grr/engine/nfaRuntime.c"],0x7ffc32f38ea8 /* 28 vars */) = -1 ENOENT (No such file or directory)
确认我的程序正在PATH
目录中运行。
解决方法
execl
不搜索PATH
给出的路径。 execlp
可以。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。