c - 如何在 C 中获取 Linux 命令位置?

标签 c linux command-line command

我在 C 中使用 execv,但它需要获取命令的路径才能执行它,例如:

  • 要执行 ls,我必须有 char* command = "/bin/ls";
  • 要执行 gedit 我必须有 char* command = "/usr/bin/gedit";

我的问题是如何在 C 中获取字符串 "/bin""/usr/bin"

最佳答案

which command给出了一个命令的完整路径。例如,

$ which ls
/bin/ls

所以,你可以在 C 程序中做这样的事情,

system ("which ls >x");
// read file x for complete path of ls

关于c - 如何在 C 中获取 Linux 命令位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060003/

相关文章:

c - OpenSSL RSA-2048 未加密 block 比应有的长度长

c - 在 C (GNU/Linux) 中运行动态生成的程序集

linux - 我如何卸载 linux 程序的多个版本的一个副本

command-line - 停止录制流的 VLC 命令

c++ - 通过命令行以编程方式运行程序

java - Java执行jar,它依赖于命令行中的其他jar

c - C语言中将字符数组拆分为名字、中间名和姓氏,如果中间名为空则跳过中间名

linux - 从 C++ 调用 shell 脚本

python - 如何让 Python 打印文件的内容

将一个文件的数据复制到另一个文件