没有终端如何启动gvim?

gra*_*olf 0 c vim

我正在尝试使用以下行启动gvim:

execl("/usr/bin/gvim", "-f", path, (char *)NULL);
Run Code Online (Sandbox Code Playgroud)

但是我越来越

Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
Run Code Online (Sandbox Code Playgroud)

我不确定如何解决这个问题。我的意思是,我知道输出不是终端,这就是为什么我使用的gvim不是just vim。这可能确实很明显,但是我不知道。

Chr*_*omz 5

如果您忘记将程序名称作为exec的第一个参数,则gvim将尝试在终端模式下打开。

它应该是:

execl("/usr/bin/gvim", "/usr/bin/gvim",
      "-f", path, (char *)NULL);
Run Code Online (Sandbox Code Playgroud)

execl手册页:

按照惯例,第一个参数应指向与正在执行的文件关联的文件名。参数列表必须以NULL指针终止,并且由于它们是可变参数函数,因此必须将该指针强制转换为(char *)NULL。