簡體   English   中英

創建指向文件的指針數組

[英]create array of pointers to files

我如何在C中創建一個文件指針數組?
我想創建一個指向main的參數的文件指針數組...如a1.txt,a2.txt等...所以我會運行./prog arg1.txt arg2.txt arg3.txt來獲取程序使用這些文件。
然后main的參數是char **argv

從argv,我想創建文件/文件指針數組。 這就是我到目前為止所擁有的。

FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
    inputFiles[i] = fopen(argv[i], "r");

代碼很好,但記得在C99中編譯。

如果不使用C99,則需要在堆上創建數組,如:

FILE** inputFiles = malloc(sizeof(FILE*) * (argc-1));

// operations...

free(inputFiles);
#include <stdio.h>`

int main(int argc, char **argv)
{
FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
{
    printf("%s\n",argv[i]);
    inputFiles[i] = fopen(argv[i], "r");
    printf("%p\n",inputFiles[i]);
}
  return 0;
}

它為每個文件指針打印不同的指針以及名稱。 允許操作系統正確關閉文件:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM