使用perror和strerror两种方式,在标准错误当中输出:****No such file or directory(****是你自定义的字符串)的错误信息
时间: 2023-12-04 09:39:34 浏览: 260
C语言期末考试题库-20221117导出.rar
使用perror函数可以在标准错误输出中打印出自定义的字符串和errno对应的错误信息。具体实现如下:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main() {
FILE *fp;
char *filename = "test.txt";
fp = fopen(filename, "r");
if (fp == NULL) {
perror("Error opening file");
exit(EXIT_FAILURE);
}
fclose(fp);
return 0;
}
```
运行结果为:
```
Error opening file: No such file or directory
```
另一种方式是使用strerror函数,它可以将errno对应的错误码转换成对应的错误信息字符串。具体实现如下:
```c++
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main() {
FILE *fp;
char *filename = "test.txt";
fp = fopen(filename, "r");
if (fp == NULL) {
fprintf(stderr, "Error opening file: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
fclose(fp);
return 0;
}
```
运行结果与上面的例子相同。需要注意的是,strerror函数返回的是一个指向静态内存区域的指针,因此不能直接修改它返回的字符串。如果需要修改,需要先将其复制到一个新的缓冲区中。
阅读全文