【问题标题】:C Program Standard Input File Name AccessC 程序标准输入文件名访问
【发布时间】:2014-03-10 01:23:37
【问题描述】:

我想知道是否有办法在 C 程序中访问标准输入文件的名称。我环顾四周,并没有发现任何东西。例如

./a.out

C 程序中有没有办法打印出文件名(file.txt)?

【问题讨论】:

  • 您为什么要这样做?这是一个相当不寻常的要求,不符合 UNIX 精神。
  • 一般不会。它根本不是文件 - 回答 here.

标签: c unix stdin


【解决方案1】:

如果您使用的是 Linux,您可以通过读取 /proc/[pid]/fd/0 或解析 lsof -p [pid] 中的内容来完成您想要的操作,其中 [pid] 是您的进程的进程 ID。

请参阅 proce(5)lsof(8)

【讨论】:

    【解决方案2】:
    printf("%s", argv[1]);
    

    确保您的主设置可以接受命令行参数

    int main(int argc, char** argv)
    

    【讨论】:

    • 这适用于./a.out file.txt,而不是./a.out < file.txt
    • 如果将它偏移另一个字符串索引会怎样?比如 argv[2]?那行得通吗
    猜你喜欢
    • 1970-01-01
    • 2015-06-01
    • 2017-03-04
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    相关资源
    最近更新 更多