linux中errno及perror的应用
? 1 perror 定义在头文件<stdlib.h>中 void perror(const char *s); 2 errno 定义在头文件#include <errno.h> errno是一个全局变量,这里使用不同的数值代表不同场景下出错的原因,当调用linux 系统api 失败时,这时可以根据errno知道失败的大致原因。 #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <linux/fb.h> #include <sys/mman.h> #include <sys/ioctl.h> #include <errno.h> #define PAGE_SIZE 4096 #define TEST_FILE "/dev/mymap" int main(int argc,char *argv[]) { int fd; int i; unsigned char *p_map; //打开设备 fd = open(TEST_FILE,O_RDWR); if(fd < 0) { perror("TEST_FILE"); printf("errno=%dn",errno); char * mesg = strerror(errno); printf("Mesg:%sn",mesg); exit(1); } //内存映射 p_map = (unsigned char *)mmap(0,PAGE_SIZE,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0); if(p_map == MAP_FAILED) { printf("mmap failn"); goto here; } //打印映射后的内存中的前10个字节内容 for(i=0;i<50;i++) printf("%dn",p_map[i]); here: munmap(p_map,PAGE_SIZE); return 0; } 调用执行结果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |