如何在默认程序中打开文件 - Linux

2023-11-21

如何以编程方式在 Linux 中的默认程序中打开文件(我使用的是 Ubuntu 10.10)。

例如,打开 *.mp3 将在电影播放器​​(或其他东西)中打开该文件。


你需要跑gnome-open、kde-open 或 exo-open,取决于您使用的桌面。

我相信有一个项目叫做xdg-utils试图为本地桌面提供统一的界面。

所以,像这样:

snprintf(s, sizeof s, "%s %s", "xdg-open", the_file);
system(s);

谨防代码注入。使用用户输入绕过脚本层更安全,因此请考虑以下内容:

pid = fork();
if (pid == 0) {
  execl("/usr/bin/xdg-open", "xdg-open", the_file, (char *)0);
  exit(1);
}
// parent will usually wait for child here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在默认程序中打开文件 - Linux 的相关文章

随机推荐

  • 在 C 中打印 int,无需 Printf 或任何函数

    我有一个作业 需要在 C 中打印一个整数 而不使用 printf putchar 等 不允许包含头文件 除了我写的任何内容之外 没有任何函数调用 我正在使用一个函数 my char 可能是错误的 但它打印出一个字符 我目前有以下代码 它向后
  • 在 wamp 中为 php 启用 opcache

    我尝试在 wamp 上启用 opcache 但它不起作用 我改变了这样的设置 opcache zend extension C wamp bin php php5 5 12 ext php opcache dll opcache enabl
  • 使用 winform 的 URI 启动应用程序

    我有一个启动默认程序的 URI 我正在尝试弄清楚如何从 Windows 窗体应用程序启动它 Google 上的所有结果都使用 Windows Apps API 来启动 URI 但我需要从表单中执行此操作 如何才能做到这一点 这是应用程序版本
  • 我可以使用 gcloud sql 命令在我的 Google Cloud Sql 实例上运行 sql 文件吗

    我有一个 sql 文件 它创建我的 mysql 数据库以及所有用户和表 我试图找出一种方法可以自动使用此 sql 文件来初始化我的 Google Cloud sql 实例上的数据库 到目前为止 我能够确定的唯一方法是使用gcloud sql
  • Vim:按 Enter 时如何缩进到左括号或括号?

    我已经用 Vim 进行 Python 编程有一段时间了 但有一件事我一直不知道如何将其设置为自动缩进到最后一个打开括号的级别 根据 pep8 如果您有一个空括号并且需要换行以适合 80 列 那么您应该在该空括号处继续下一行 例子 calli
  • 在python中将字节转换为位

    我正在使用Python3 2 我需要将十六进制流作为输入并在位级别解析它 所以我用了 bytes fromhex input str 将字符串转换为实际字节 现在如何将这些字节转换为位 另一种方法是使用bitstring module gt
  • 仅在 iOS 中首次启动时显示屏幕

    Tweetbot 和 Clear 在应用程序首次启动时会显示一个小教程屏幕 说明应用程序的工作原理 仅在应用程序第一次启动时才会弹出带有小教程的屏幕 1次 我如何以及用什么可以制作类似的东西 有人能把我推向正确的方向吗 查看我的意思是 我假
  • PostgreSQL array_agg(INTEGER[])

    使用 Postgres 9 5 我想连接 GROUP BY 中的整数数组 从文档看来 array agg 应该能够做到这一点 但我得到 ERROR cannot accumulate arrays of different dimensio
  • 在 Python 中运行子目录中的所有测试

    我对让所有单元测试在 Python 中运行感到束手无策 我搜索了大约 30 个不同的帖子和单元测试文档 但仍然无法弄清楚 首先 我有两个测试类 我可以单独运行它们并且所有测试都通过 文件 unittest subfolder1 TestOb
  • CGPoint 到 NSValue 并反向

    我有代码 NSMutableArray vertices NSMutableArray alloc init Getting mouse coordinates loc self convertPoint event locationInW
  • MongoDB 聚合查询 - 重命名从嵌入文档中返回的字段

    我目前正在使用聚合运算符返回具有嵌入 子 文档数组的文档 我想重命名数组的字段名称 并重命名数组嵌入文档中的字段名称 例如 对于投影 我想将数组从 friends 重命名为 buddies 并且我还想将嵌入文档中的字段从 name 重命名为
  • 在 Python 中从 Json 创建具有多个键值的嵌套 Json 结构

    我的代码如下 import json def reformat importscompanies print importscompanies container child item dict for name imports in im
  • 具有不同签名的两个主要方法

    我有以下课程 public class Test public static void main Integer args System out println This is not a main public static void m
  • 用双反斜杠替换单反斜杠需要八个反斜杠吗?

    这是一个 这里到底发生了什么 的问题 我实际上不需要解决方案 我必须用双反斜杠替换 String 中的所有单反斜杠 这就是我最终所做的 strRootDirectory strRootDirectory replaceAll 其中 strR
  • 删除字符串开头和结尾的所有分隔符

    在折叠行并使用分号分隔后 我想删除字符串前面和后面的分号 多个分号代表单元格中的空白 例如 崩溃后的观察结果可能如下所示 TX PA CA 我希望单元格看起来像这样 TX PA CA 这是我的折叠代码 new df lt group by
  • Terraform 将 2 个变量合并为一个新变量

    我想在具有大量端口组的环境中自动部署 Vmware 虚拟机 为了能够选择正确的端口组 最好输入租户和环境这两个变量 这两个变量用于 CMDB 注册和部署目的 对于部署 需要将变量合并为 1 个新变量以选择正确的端口组 由于插值语法 似乎不可
  • 检测移动到 Mobile Safari 中的新选项卡

    我有一系列打开弹出窗口的页面 Mobile Safari 中的新选项卡 每个弹出窗口都需要知道它们何时获得焦点 在桌面上 我们使用window onblur and window onfocus来驱动这种行为 然而 这些事件在 iPad 上
  • 将枚举变体用作函数的奇怪语法是什么?

    下面是example由 mod 文档给出syn parse enum Item Struct ItemStruct Enum ItemEnum struct ItemStruct struct token Token struct iden
  • WinForm 应用程序中的安全连接字符串

    如何保护 WinForm 应用程序中的 ConnectionString 你不能 尽管您可以加密 app config 文件中的连接字符串 但应用程序需要能够对其进行解密 因此始终可以检索未加密的连接字符串 尤其是对于托管应用程序 可能不适
  • 如何在默认程序中打开文件 - Linux

    如何以编程方式在 Linux 中的默认程序中打开文件 我使用的是 Ubuntu 10 10 例如 打开 mp3 将在电影播放器 或其他东西 中打开该文件 你需要跑gnome open kde open 或 exo open 取决于您使用的桌