我对c一窍不通。
我见过system()
和fork()
和execv()
的东西,但我不认为他们是我需要的(或者他们只是不工作)
我只是想让我的C程序立即打开vim的文件路径进行编辑,然后我可以退出vim,程序继续,在我的情况下,它会退出。
像git commit
一样,它为我打开vim,然后当我保存退出时,它发送提交。
任何想法?
System(3)
可以完成这项工作,但要注意,如果在调用程序时将输入/输出重定向到非终端,这将传播到vim
的执行,并且它将不起作用。
vim(3)
要求输入和输出都指向一个终端行,它不能在重定向输入上工作,所以调用它的最佳方式应该是(与system()
一起):
system("/usr/bin/vim file </dev/tty >/dev/tty");
重定向子句指定将输入和输出重定向到会话控制终端,因此即使您在主程序中重定向了标准输入/输出,也可以使其工作。
system()
是我正在寻找的,我使用它不正确,但它很简单,只是使用:
system("vim path/to/file.txt");
将打开当前目录的vim并按预期工作(如git commit
)