void my_create(char* path)
{
FILE* fp;
fp = fopen(path, "rb+");
if (fp == NULL) /* File doesn't exist*/
fp = fopen(path, "wb");
}
为什么它不起作用?或者我错误的路径做错了什么? 不太确定。
提前致谢
答案 0 :(得分:0)
文件名可能不可接受,或者您遇到权限问题。
试试这个:
#include <string.h>
#include <errno.h>
void my_create(char* path)
{
FILE* fp;
fp = fopen(path, "rb+");
if (fp == NULL) { /* File doesn't exist*/
printf ("File does not exist : %s", path)
fp = fopen(path, "wb+");
if (fp == NULL) {
fprintf (stderr, "Cannot create file : %s\n", path);
fprintf (stderr, "Reason : %s" , strerror (errno));
}
}
}
答案 1 :(得分:0)
我不认为检查文件是否存在与fopen是正确的方法。 你可以使用stat()。
struct stat st = {0};
if (stat(path, &st) == -1)
{
FILE *fp = fopen(path, "w+");
if (!fp) printf("Can not create file: %d\n", errno);
else fclose(fp);
}