例如,Windows 启动所选应用程序的新进程并将要打开的文件的名称传递给带有附加命令行参数的进程(对于我的应用程序:argv[0] - 可执行文件,argv[1] - openable文件)。Ubuntu 启动我的应用程序,但该进程没有收到任何其他参数(仅 argv[0])。我的应用程序如何找出用户打开的文件的名称?
例如,Windows 启动所选应用程序的新进程并将要打开的文件的名称传递给带有附加命令行参数的进程(对于我的应用程序:argv[0] - 可执行文件,argv[1] - openable文件)。Ubuntu 启动我的应用程序,但该进程没有收到任何其他参数(仅 argv[0])。我的应用程序如何找出用户打开的文件的名称?
文件管理器将传递您右键单击的文件的 URI,以选择“打开方式”。
在 linux 桌面中,应用程序是使用启动器文件启动的。启动器文件是带有
.desktop
扩展名的纯文本文件。它包含有关如何启动应用程序、使用什么图标、如何以及在菜单中显示它的位置等桌面环境的信息。Open With Other Application" list in Files (nautilus) is populated by the
系统上存在的 .desktop` 文件。它是在定义参数的行的
.desktop
文件中。例如,对于编辑器 Gedit,这一行是Exec=
只有当文件的
Exec=
条目.desktop
包含参数时,系统才会将它从文件(nautilus)接收到的参数传递给程序。