在Linux中,fprintf
函数用于将格式化的输出写入文件流
- 检查返回值:
fprintf
函数返回成功写入的字符数。如果返回值为负数,表示发生了错误。
#include#include #include int main() { FILE *file = fopen("test.txt", "w"); if (file == NULL) { perror("Error opening file"); return 1; } int ret = fprintf(file, "Hello, World!\n"); if (ret < 0) { perror("Error writing to file"); fclose(file); return 1; } fclose(file); return 0; }
- 使用
ferror
函数检查错误:ferror
函数检查给定文件流的错误指示器。如果有错误发生,它将返回非零值。
#include#include #include int main() { FILE *file = fopen("test.txt", "w"); if (file == NULL) { perror("Error opening file"); return 1; } fprintf(file, "Hello, World!\n"); if (ferror(file)) { perror("Error writing to file"); fclose(file); return 1; } fclose(file); return 0; }
- 使用
clearerr
函数清除错误:如果你确定错误是可以恢复的,可以使用clearerr
函数清除文件流的错误指示器。这样,你可以继续使用该文件流进行操作。
#include#include #include int main() { FILE *file = fopen("test.txt", "w"); if (file == NULL) { perror("Error opening file"); return 1; } fprintf(file, "Hello, World!\n"); if (ferror(file)) { perror("Error writing to file"); clearerr(file); // 尝试恢复或采取其他措施 } fclose(file); return 0; }
请注意,当处理文件I/O错误时,通常需要根据具体情况采取适当的措施,例如重试操作、记录错误日志或通知用户。