要求:写三个代码文件,main.c,mycp.c,mycp.h。要求在命令行输入两个文件名即可实现把第一个文件复制到第二个新文件中,其中mycp函数的要求是mycp(char *src, char *dest),*src是源文件路径,*dest是目标文件路径。
知识点:
1.Linux系统编程之错误处理:perror , strerror 和 errno
首先是errno,在系统编程中错误通常通过函数返回值来表示,并通过这个特殊变量errno来描述。errno这个全局变量在errno.h头文件中声明如下:extern int errno;
查看错误代码errno是调试程序的一个重要方法。当linuxC api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。
2.错误处理函数
(1) 函数 void perror(const char *s);
函数说明:perror()用来将上一个函数发生错误的原因输出到标准错误(stderr)。参数s所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。
例子:
#include<stdio.h>
main()
{
FILE *fp;
fp = fopen("/tmp/jiege","r+");
if(fp == NULL)
perror("open failed!");//类似于fputs("open failed!",stderr)
}
执行:
$ ./perror
open failed! : No such file or diretory
报错提示字符串里的内容加冒号:错误信息,这里报错是因为找不到文件或目录。
(2) 函数char * strerror(int errnum);
函数说明:strerror()用来依参数errnum的错误代码来查询其错误原因的描述字符串,然后将该字符串指针返回。
返回值:返回描述错误原因的字符串指针。
/* 显示错误代码0 至9 的错误原因描述*/
#include <stdio.h>
#include<string.h>
main()
{
int i;
for(i=0;i<10;i++)
printf("%d : %s\n",i,strerror(i));
}
执行:
0 : Success
1 : Operation not permitted
2