Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 创建有错误的文件_C_File - Fatal编程技术网

C 创建有错误的文件

C 创建有错误的文件,c,file,C,File,我的问题是我应该如何处理文件,以便在fwrite时出错(fwrite中的其他参数是正确的)。如果文件将设置为只读属性,该怎么办 FILE *pFile = NULL; pFile = fopen(path, "wb"); if (!pFile) { return RET_FILE_OPEN_ERROR; } //ba is OK result = fwrite(ba->buf, sizeof(uint8_t), ba->len, pFile); if (result != ba-&

我的问题是我应该如何处理文件,以便在fwrite时出错(fwrite中的其他参数是正确的)。如果文件将设置为只读属性,该怎么办

FILE *pFile = NULL;

pFile = fopen(path, "wb");
if (!pFile) {
return RET_FILE_OPEN_ERROR;
}
//ba is OK
result = fwrite(ba->buf, sizeof(uint8_t), ba->len, pFile);
if (result != ba->len) {
fclose(pFile);
return RET_FILE_WRITE_ERROR;
}
如果您只想要一个错误(也就是说,您不在乎是哪一个),最简单的错误(在Linux上)是
EFBIG
。使用
setrlimit(RLIMIT\u FSIZE,…)
限制文件的最大大小。不要忘记捕捉
SIGXFZ
信号

在Windows上,您可以使用磁盘配额


另一种方法是创建一个非常小的环回设备(或Windows上的VHD),并享受“设备上没有剩余空间”错误。

您是在尝试生成错误,还是询问如何处理发生的错误?我想她想让
fwrite
测试失败。将文件设置为只读将在
fopen
中失败,因此无法工作。您介意发布一个包含所有必需的结构和变量声明的文件吗?如果@rustyx对问题目的的理解是正确的,那么您可以
fopen
文件,例如,1)共享位置,2)-usb/软盘驱动器,然后1)关闭该共享或2)从计算机中卸下usb/软盘驱动器,然后执行“写入”