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

时间:2014-02-15 23:39:24

标签: 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;
}

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

只需删除引号。

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