【问题标题】:how do I run c program without using ./?如何在不使用 ./ 的情况下运行 c 程序?
【发布时间】:2013-10-28 06:36:07
【问题描述】:

我需要编写一个像“标准 unix 过滤器”这样的 c 程序。我获得了一个正确的示例程序,它能够在不使用“./”的情况下运行已编译的 c 程序 我在我的 c 程序中尝试了相同的操作,但在 bin 中找到了替代命令,但出现非法命令错误。我的程序中是否需要一些特殊的别名或代码才能在没有 ./ 的情况下运行 c 程序?

【问题讨论】:

  • 跟 C 没关系,除了 shell Path。
  • 这个问题似乎跑题了,因为它是关于将当前目录添加到PATH
  • @devnull: 怎么跑题了?
  • @KeithThompson 这是题外话,因为它不是关于编程,而是关于操作系统的一般用法。
  • @KeithThompson 这是题外话,因为它已被问及回答超过一百万次。

标签: unix


【解决方案1】:

这与 C 无关;一般而言,它是关于执行您自己的程序,大概是在类 Unix 系统上。

如果您将可执行文件复制到 $PATH 中的目录中,则只需在 shell 提示符下键入名称即可执行它。

通常的做法是在您的$HOME 目录下直接创建一个bin 目录,并在您的$HOME/.bash_profile 中将$HOME/bin 添加到$PATH。例如:

PATH=$HOME/bin:$PATH

(您也可以将. 添加到您的$PATH,但不建议这样做;这样很容易意外执行。)

【讨论】:

  • 我要补充一点,调用/lib/ld-linux.so.2 your_program(用适当的动态链接器代替)实际上会启动程序,即使它没有执行权限。有时对不支持 UNIX 访问权限的坏文件系统很有用。
  • @keltar:也许,但不太可能对 OP 有用。
猜你喜欢
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多