获取通过重定向传入的输入文件的名称?

Lir*_*ber 6 c++ bash io-redirection

假设我在 Linux / Bash 中得到了这样的东西:

./my_program <input_file.in
Run Code Online (Sandbox Code Playgroud)

我的代码中有没有办法检查输入文件的名称?

像这样的东西?

if (strcmp(in,"desired_input_file_name.in")) {
   printf("success!!"\n);
}
Run Code Online (Sandbox Code Playgroud)

for*_*818 10

没有便携的简单方法。管道 via<会将 的内容重定向input_file.in到 的标准输入my_program。这与您输入文件内容相同。如果你想知道文件名,那么你需要传递它,例如作为命令行参数:

./my_program input_file.in
Run Code Online (Sandbox Code Playgroud)

  • 迂腐一点,办法是有的,只是坏主意而已。您可以费尽周折来获取文件名,但您不应该这样做。 (2认同)