【发布时间】:2019-09-10 07:33:43
【问题描述】:
我想在 Linux 作为 OS 下的 for 循环中创建 N 个文件; 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *ptr;
char name[25];
for (int i = 0; i < 10; i++) {
snprintf(name, sizeof(name), "File_Nr%d.txt", i);
ptr = fopen(name, "w");
if( ptr == NULL ){
perror("Error creating file!");
}
fclose(ptr);
}
return 0;
}
它工作并创建 File_Nr0.txt 到 File_Nr9.txt。
问题:这段代码“安全”吗?
【问题讨论】:
-
只是一个问题,也许有比我能做的更好的事情! :)
-
那么在这种情况下,如果出现问题,您可能会返回错误,并且可以考虑使用
"w+"、"a"或"a+"进行打开模式以避免截断已存在的文件 -
还可以考虑在问题中包含您对安全性的说明
-
@DDBE,考虑在codereview.stackexchange.com提出这个问题