我想创建一个程序,使正在运行的gedit
进程使用C在新选项卡中打开.txt
文件。该文件将是我提供给程序的参数。但是,我想完全避免使用system()
。
我在Linux上。这可能吗?如果是这样,通过什么方式?
答案 0 :(得分:1)
执行此操作的标准方法是不将编辑器的可执行文件名硬编码到应用程序中。用户可能根本没有安装gedit(只有在系统运行Gnome时才会安装gedit。)而是使用xdg-open
将要打开的文件作为参数。例如:
system("xdg-open myfile.txt");
如果用户使用gedit作为默认编辑器,如果gedit已在运行,则会在新选项卡中打开该文件。如果它没有运行,它将首先启动。
答案 1 :(得分:1)
您不需要system()
。你可以使用fork / execlp
if(!fork())
execlp("gedit", "gedit", filename, NULL);
如果已有正在运行的实例,我的笔记本电脑上的gedit版本默认使用新标签,但我不确定其他版本。
答案 2 :(得分:0)