【问题标题】:Is there a way to redirect a file without using its extension in Unix?有没有办法在不使用 Unix 扩展名的情况下重定向文件?
【发布时间】:2016-09-29 21:56:27
【问题描述】:

例如,我有一个带有可执行目标 prog 和一个文件 file.txt

的 C 程序

在我的 C 程序中有没有办法让标准输入读取和接受没有扩展名的 file.txt。目前我读取标准输入的代码是..

while (scanf("%d ", &n) != EOF)

为此,我必须这样做 ./prog

但我想这样做 ./prog

【问题讨论】:

  • 可以将file.txt 重命名为file 吗?
  • 没有。因为不是 C 来解析文件名。重定向发生在外壳级别。您几乎是在告诉外壳“将file 转换为 prog 的标准输入”。这意味着你可以做prog < file*
  • 你试过了吗?那会比在这里发帖要快得多。发生了什么?
  • 这就是我认为重定向是shell而不是我的C prog。
  • ln file.txt file

标签: c unix


【解决方案1】:

但我想这样做 ./prog

不,这行不通。您只需要明确并使用:

./prog < file.txt

【讨论】:

    【解决方案2】:

    更改您的程序,而不是使用操作系统进行重定向,而是将文件作为命令行参数并自己打开并读取。

    这样您就可以对您认为必要的文件名进行任何字符串操作。

    【讨论】:

    • 是的,这也是我们的目标之一。我很容易做到这一点,但在他的指导下,他似乎希望重定向也使用具有隐式扩展名的文件
    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 2019-06-17
    • 2020-09-12
    • 2021-04-29
    • 2018-10-20
    相关资源
    最近更新 更多