从 shell 调用 C 函数 (libcanberra)

发布于 2024-12-20 19:14:13 字数 609 浏览 0 评论 0原文

我想在 Git hook 中为有趣的项目播放系统声音。

有一个 freedesktop 标准 和一个 C 库 (libcanberra) 用于系统声音,但 libcanberra 没有附带可执行文件。有没有一种简单的方法来调用 ca_context_play 从 shell 脚本调用 libcanberra 的方法,而不启动完整的 perl 或 python 解释器?如果没有,我将如何使用 perl/python 来实现它?

I'd like to play a system sound in a Git hook for a fun project.

There's a freedesktop standard and a C library (libcanberra) for system sounds, but no executable coming with libcanberra. Is there an easy way to call the ca_context_play method of libcanberra from a shell script without starting a full perl or python interpreter? And if not, how would I to it with perl/python?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

后知后觉 2024-12-27 19:14:13

为什么不编写一个简单的 C 程序来通过您在命令行上指定的内容来调用该函数呢?

Why don't you just write a simple C program that calls the function through what you specify on the command line?

带上头具痛哭 2024-12-27 19:14:13

你不能从 shell 调用 C 函数(除非你为少数 shell 开发插件 - 比如 zsh - 接受它们;但那样你就不会那样问你的问题了。)。

您只能从 shell 运行程序,并且您可以编写一个程序,正如匿名用户 112358132134 所建议的那样。

有几个程序可以在 Linux 上播放一些声音。在我的 Debian 机器上,sox 软件提供了执行此操作的 play 命令。

You cannot call a C function from shell (unless you develop plugins for the few shells -like zsh- accepting them; but then you won't have asked your question that way.).

You can only run a program from a shell, and you could write one, as the anonymous user112358132134 suggested.

There are several programs to play some sounds on Linux. On my Debian box, the sox software provides the play command which does that.

半世晨晓 2024-12-27 19:14:13

在 shell 中运行 C 代码之前需要先对其进行编译,因此无法直接从 shell 调用 C 函数。

命令行只执行机器代码。当你看到它执行文本(shell脚本或python脚本)时,它只是调用另一个可以执行文本的程序(如python虚拟机)。所以编译语言(如C或C++)不能直接执行。

You need to compile C code before running it in shell, so it's not possible to directly invoke C functions from shell.

The command line only executes machine code. When you see it executes text(shell script or python script), it just invokes another program(like python virtual machine) which can execute text. So compilation language(like C or C++) cannot be directly executed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文