我想在Git挂钩中播放系统声音,以进行有趣的项目

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

===============>>#1 票数:3

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

===============>>#2 票数:2

您不能从shell调用C函数(除非您为少数几个shell开发插件(例如zsh),否则就不会这样问了。)

您只能从外壳运行程序,并且可以编写一个程序,如匿名用户112358132134所建议。

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

===============>>#3 票数:0

您需要先编译C代码,然后再在Shell中运行它,因此不可能直接从Shell调用C函数。

命令行仅执行机器代码。 当您看到它执行文本(shell脚本或python脚本)时,它仅调用另一个可执行文本的程序(例如python虚拟机)。 因此,编译语言(如C或C ++)无法直接执行。

  ask by Thomas Koch translate from so

未解决问题?本站智能推荐:

1回复

用C制作外壳,但是无法使chdir工作?

我正在用C编写一个shell,该shell应该实现几个命令,其中之一是change directory命令。 要更改目录,我使用chdir(),但是每次运行代码时,都会出现分段错误(核心转储)错误。 这是我的代码: 我想我可能没有正确使用strtok? 任何帮助表示赞赏,谢谢:
2回复

如何通过外壳程序脚本将运行时参数传递给C中的函数

我有一个Shell脚本,该脚本必须从命令行获取参数并将其传递给C语言中的函数。我尝试搜索但找不到可理解的解决方案。 请帮我。 是否应该在外壳程序脚本中通过选项将参数作为命令传递? 我有一个像这样的主要功能: 如何通过外壳程序脚本从命令行传递参数ABC / XYZ,外壳程序脚本随
1回复

无法解决c中的分段错误(核心已转储)

我们正在编写一个必须模仿Linux shell的程序。 它由一些部分组成。 每个部分都执行上一部分所做的事情,外加一些额外的操作。 第一部分运行ls,pwd等单个命令。无参数,无重定向。 第二部分运行单个命令以及重定向。 这就是我们遇到的问题。.我们编译myShel
3回复

如何使用交流程序确定用户是否输入了Linux中存在的命令

我正在做一个让用户输入c字符串的程序,然后我想做一个检查用户输入的字符串是否是linux命令的函数。 例如 用户:cat输出:cat是命令 用户:hello输出:hello不是命令 等等... 有人告诉我可以使用execvp,但我不想执行该命令只是为了确定它是否存在,我只是
2回复

Shell命令如何执行

我是新手,正在寻找一些信息。 提前致谢。 echo“ Hello World!”和有什么不一样? 和一个打印“ Hello World!”的C程序 使用printf。 Shell命令如何执行。 例如,如果我给ls它列出目录中的所有文件。 当我们在shell中输入l
1回复

Shell:将带有参数的函数作为函数参数传递

我正在开发一个Shell程序来自动化我的Arch(强制性btw )安装。 为了使其更具交互性,我构建了以下功能: # READYN # ARGS: # - Yes/no question # - Command to run if yes # - Comm
1回复

shell如何扩展* .c?

我在读教科书时遇到一个问题-Unix系统编程 当您使用以下命令行执行Program 3.5的execcmd时,参数数组作为第二个参数传递给execvp execcmd是多少? 答案:答案取决于当前目录中.c文件的数量,因为在将命令行传递给execcmd之前,shell会扩展
4回复

如何在shell脚本中进行比较?

如何在shell脚本中进行比较? 或者,为什么以下脚本不打印?
2回复

Linux Shell - Grep命令

我在使用grep时遇到问题: \\{n\\} , \\{n,\\}和\\{n,m\\} 。 我有一个名为“new”的文件,其中包含以下行: 当我使用grep 'a\\{1\\}' new我得到这个输出: 所以,基本上,这个命令会显示包含1个或更多连续出现的字符“a”的行吗?
2回复

Shell Printf:无效数字错误

我有一个名为exfile的文件(每行4个数字): 我想阅读此文件并使用所有4个数字。 我的Shell脚本是: 错误是printf: {0..96}: invalid number 如果删除行: 错误是一样的。 我添加这些行以将字符串转换为整数。 知道为