我正在尝试使用此行启动gvim:
execl("/usr/bin/gvim", "-f", path, (char *)NULL);
但是我得到
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
,我不确定该如何解决。我的意思是,我知道输出不是终端,这就是为什么我使用gvim
而不是vim
的原因。这可能确实很明显,但我不知道。
答案 0 :(得分:5)
如果您忘记将程序名称作为exec的第一个参数,则gvim将尝试以终端模式打开。
应该是:
execl("/usr/bin/gvim", "/usr/bin/gvim",
"-f", path, (char *)NULL);
在execl手册页中:
按照惯例,第一个参数应指向文件名 与正在执行的文件关联。参数列表必须是 由NULL指针终止,并且由于它们是可变函数, 此指针必须强制转换为(char *)NULL。