以写模式在C中打开文件
我正在编写一个C程序,将文本文件转换为二进制文件,反之亦然。我的第一个问题是关于以“w”模式打开文件。是否需要检查输出文件是否正确打开以写模式在C中打开文件,c,file-io,binaryfiles,C,File Io,Binaryfiles,我正在编写一个C程序,将文本文件转换为二进制文件,反之亦然。我的第一个问题是关于以“w”模式打开文件。是否需要检查输出文件是否正确打开 FILE *output; output = fopen("output.bin", "w"); if(output == NULL) { printf("Error opening output file\n");} 基本上,我的问题是输出是否真的==NULL。因为如果打开输出时出现问题,它会创建一个名为“output.bin”的新文件吗 另外,我的
FILE *output;
output = fopen("output.bin", "w");
if(output == NULL)
{ printf("Error opening output file\n");}
基本上,我的问题是输出是否真的==NULL。因为如果打开输出时出现问题,它会创建一个名为“output.bin”的新文件吗
另外,我的另一个问题是,字符实际上是如何保存在二进制文件中的。我知道我应该将每个字符保存为无符号字符,这样它的值可以介于0和255之间,然后我应该将该字符写入输出文件。如果有人能帮助我或为我指出正确的方向,那么这种情况发生的实际逻辑路径是没有意义的,我将不胜感激 是,以写模式打开文件可能仍然失败。以下是一些可能的原因,但肯定不是唯一的原因:
- 您没有创建或更改文件的权限
- 文件是只读的,或者它所在的目录是只读的
- 该文件将位于另一个文件中。(
如果test/foo
是文件而不是目录)test
- 文件系统空间或索引节点不足(在具有固定索引节点数的文件系统上)
- 用户已达到其磁盘空间配额
- 该文件将位于另一台计算机上,并且网络已关闭
- 文件名无效-例如windows上的
C:/?*\\\\foo
- 文件名太长