error,perror,strerror,fprintf....md
程序员文章站
2022-03-25 08:52:07
...
-
error
表示错误代码, 记录系统的最后一次错误代码, 代码是一个int
型的值, 在error.h
中定义, 系统每一次出错都会对应一个出错代码 -
stderr
是linux的(unix)的标准错误输出, Linux中的一个进程启动时候, 都会打开三个文件指针- stdin 标准输入 0(文件描述符)
- stdout 标准输出 1(文件描述符)
- stderr 标准出错处理 2(…)
分别指向标准输入, 标准输出, 标准错误输出. 通常结合
fprintf
使用fprintf(stderr,"error message");
-
perror
要包含有头文件stdio.h
是错误输出函数, 在标准输出设备上输出一个错误信息, 是对errno的封装.perror("fun:");//输出显示为 //fun:错误信息后(加一个换行符)
-
stderror
要包含有文件string.h
是通过参数errno
来返回错误信息, 注意stderror
返回的是一个错误消息的字符串, 是给用户处理的错误信息
测试效果代码
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main(int argc[],char *argv[])
{
malloc(1);
printf("errno = %d\n",errno);
fprintf(stderr,"stderr\n");
perror("perror");
printf("strerror: %s\n",strerror(errno));
malloc(-1);
printf("errno = %d\n",errno);
fprintf(stderr,"stderr\n");
perror("perror");
printf("strerror: %s\n",strerror(errno));
return 0;
}
-
重定向的概念
-
把某应用的操作对象换成别的
比如说我这个程序原来是从键盘接受信息, 现在是从一个.ini文件接受信息, 本来输出显示在屏幕上我输出到某个文本保存起来
-
重定向方法一:
如果你手上有源代码, 在开头把输入屏幕重定向到out.txt就可以达到这个效果(追加形式打开)
FILE* ST; ST = freopen("out.txt","a+",stdout);
-
方法二:
如果没有源代码, 只有可执行文件, 没有修改的机会, 那么可以使用管道符.
在Linux测试如下
//test.c #include <stdio.h> int main() { int i ; scanf("%d",&i); printf("%d\n",i); return 0; } /* 编译通过以后创建文件input.txt 键入: 123 保存退出 在命令行输入: ./a.out < input.txt >>out.txt 查看out.txt的内容 cat out.txt //输出123 */
-
上一篇: matplotlib画中文图