开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Lubuntu + gcc
问题(Question):
这是我从书上照抄的程式,想练习错误处理
不过不知道为何compile后会有warning
ferror.c:13:16: warning: initialization makes pointer from integer without
a cast
char *es = strerror(errno);
^
还有执行后会有Segmentation fault
喂入的资料(Input):
一个不存在的file nofile.xxx
预期的正确结果(Expected Output):
无Segmentation fault
错误结果(Wrong Output):
Segmentation fault
程式码(Code):(请善用置底文网页, 记得排版)
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main(void) {
FILE *fp;
puts("Open a file nofile.xxx");
fp = fopen("nofile.xxx","r");
if (!fp) {
perror("Error!");
}
char *es = strerror(errno);
puts(es);
clearerr(stdin);
return 0;
}
补充说明(Supplement):
程式出处:边学边做C语言