c - 如何从 C 中的 Unix 终端获取输入文件名?

标签 c file unix input terminal

我的程序执行如下:

$./sort 1 < test.txt

sort是程序名

1 是参数 (argv[1])

test.txt 是我输入的文件

是否可以从中提取名称文件?如果是这样怎么办? 问题是我已经编写了整个程序,就好像我可以从输入行中提取名称一样,所以我需要能够将它传递给参数。

感谢任何帮助, 谢谢!

最佳答案

你不能。 shell 打开 (open(2)) 该文件并设置重定向(很可能使用 dup2)。

唯一可能的方法是让 shell 显式导出环境变量中的信息,您可以通过 getenv 读取该信息。

但这并不总是有意义的。例如,您希望从中得到什么文件名

$ echo "This is the end" | ./sort 1

关于c - 如何从 C 中的 Unix 终端获取输入文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353010/

相关文章:

c - 我如何重写这个 if-else 语句,使其不使用跳转?

c# - 检查文本文件是否在记事本中打开

mysql - 获取所选(浏览)文件的完整路径 jsp web

linux - 在 find 命令中查找文件数和文件名,忽略目录

C 编程 - 理解 bind()

不同COM串口无法通讯

c - 发送方缓冲区中未确认数据的 TCP 表示

c - 从文件中读取(c 编程)

linux - Unix:共享内存。 shm_open() 返回 -1

C/C++ 'continue' 等价于 VB6