c 使用 freopen 和 argv[1] 在终端中创建文件

标签 c pointers terminal

我正在尝试使用 Unix 中的终端创建一个文件。我的代码如下。我知道 argv[1] 正在从终端屏幕获取数据,因此例如当我执行 ./a.out newfile.txt 时,argv[1] 的值为 newfile.txt

当我运行命令 ls 检查我的目录时,该文件名为 argv[1]。我是否需要使用某种形式的指针才能成功完成我正在尝试的事情?

问候

int main (int argc, char* argv[])
{
  printf("File to create: %s \n", argv[1] );
  freopen("argv[1]", "w+", stdout);
  return 0;
}

最佳答案

您告诉freopen创建一个名为“argv[1]”的文件,作为char*(作为“字符串”如果你愿意的话)。要实际使用 argv[1] 参数根据为程序提供的第一个参数创建文件,请不要引用 argv[1]:

  freopen(argv[1], "w+", stdout);

关于c 使用 freopen 和 argv[1] 在终端中创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21805214/

相关文章:

C编程: How to return to main and call another function?

c - 分配/未分配字符串的命名约定

c - 打印值、指针和指向值的指针

c - 为什么有人会在 C 中使用这种类型的转换? float 的引用被强制转换为 int 指针,然后取消引用

终端中的 Git

firefox - 如何用火狐打开终端?

arrays - 为什么此 C 代码(读取文件)在退出(或文件重新分配)时崩溃?

c - 在 C 中使用 void 指针模拟通用链表

c++ - 带矩阵存储偏移

c++ - 为什么 getchar 像缓冲区一样工作,而不是像预期的那样实时工作