c++ - 如何在 C++ 中返回文件名?

标签 c++

我有问题

如何获取程序中“input.txt”文件的名称

./a.out < input.txt

文件名不在主函数参数中。

最佳答案

根据您的可执行文件名为 a.out 的事实判断,这是在类 Unix 操作系统下进行的。假设它是 Linux,当您的进程正在运行时,/proc/self/fd/0 下将有一个指向输入文件(在您的情况下为 input.txt)的符号链接(symbolic link)。您可以使用 readlink 获取内容:

char LinkTarget[200];
readlink("/proc/self/fd/0", LinkTarget, sizeof LinkTarget);

就是说,如果您需要文件名而不仅仅是内容,最好让您的程序通过命令行参数(argv 内部)接受文件名,就像 Eddymage 所暗示的那样。

关于c++ - 如何在 C++ 中返回文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61084801/

相关文章:

c++ - 这里是否需要 volatile

c++ - C++输入整数打印unicode

c++ - 具有类似 FileSystemModel 功能的 TreeView?

c++ - 按特征类专门化功能

c++ - 从复制构造函数调用构造函数

c++ - 为什么 gcc 不检测所有已处理的枚举值?

c++ - unix管道如何跨平台端口?

c++ - TBB tbb::memory_pool<tbb::scalable_allocator<char>> 如何正确使用?

c++ - 在终端中运行一个用 XCode 构建的构建,怎么样?

c++ - 为简单的应用程序设置自定义入口点