C++ fopen fwrite 我选择的特定路径
C++ fopen fwrite with specific path i choose
我正在 Linux 上编写一个简单的代码,该代码写入文件。该文件将存储在特定路径中(与可执行文件所在的路径不同)。问题是当我执行代码时,程序以 分段错误(核心转储)
这是我的代码:
#include <stdio.h>
int main ()
{
FILE * pFile;
char buffer[] = { 'x' , 'y' , 'z' };
pFile = fopen ("/home/medwajih/Desktop/bufferfile/buffer.txt", "wb");
fwrite (buffer , sizeof(char), sizeof(buffer), pFile);
fclose (pFile);
return 0;
}
注意程序的exe在“/home/medwajih/Desktop/”,我要创建buffer.txt文件的位置是“/home/medwajih/Desktop/bufferfile/”
谢谢。
如果 fopen
失败(例如 /home/medwajih/Desktop/bufferfile
目录不存在,或者文件存在但具有不允许您替换它的权限),那么 pFile
将是设置为 NULL。
尝试使用它是未定义的行为。
您通常应该检查所有可能失败的调用以确保它们以后不会引起问题,例如:
pFile = fopen ("/home/medwajih/Desktop/bufferfile/buffer.txt", "wb");
if (pFile == NULL) {
fprintf (stderr, "Could not create file\n");
return 1;
}
如果问题是其实是目录不存在,可以提前调用mkdir
。当然,还要检查它的 return 值 :-)
如果是其他问题(问题中没有足够的信息来确定它是什么),您需要找到其他方法来纠正问题。
我正在 Linux 上编写一个简单的代码,该代码写入文件。该文件将存储在特定路径中(与可执行文件所在的路径不同)。问题是当我执行代码时,程序以 分段错误(核心转储)
这是我的代码:
#include <stdio.h>
int main ()
{
FILE * pFile;
char buffer[] = { 'x' , 'y' , 'z' };
pFile = fopen ("/home/medwajih/Desktop/bufferfile/buffer.txt", "wb");
fwrite (buffer , sizeof(char), sizeof(buffer), pFile);
fclose (pFile);
return 0;
}
注意程序的exe在“/home/medwajih/Desktop/”,我要创建buffer.txt文件的位置是“/home/medwajih/Desktop/bufferfile/”
谢谢。
如果 fopen
失败(例如 /home/medwajih/Desktop/bufferfile
目录不存在,或者文件存在但具有不允许您替换它的权限),那么 pFile
将是设置为 NULL。
尝试使用它是未定义的行为。
您通常应该检查所有可能失败的调用以确保它们以后不会引起问题,例如:
pFile = fopen ("/home/medwajih/Desktop/bufferfile/buffer.txt", "wb");
if (pFile == NULL) {
fprintf (stderr, "Could not create file\n");
return 1;
}
如果问题是其实是目录不存在,可以提前调用mkdir
。当然,还要检查它的 return 值 :-)
如果是其他问题(问题中没有足够的信息来确定它是什么),您需要找到其他方法来纠正问题。