errno, strerror (errno)) 错误打印
2013-10-22 11:21
225 查看
每次调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,
只需要读errno这个全局变量就可以获得失败原因
#include <stdio.h>
#include <string.h>
#include <errno.h>
static void open_device (int * fd, char * dev_name)
{
*fd = open (dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);
if (-1 == *fd)
{
fprintf (stderr, "Cannot open '%s': %d, %s\n", dev_name, errno, strerror (errno));
exit (EXIT_FAILURE);
}
}
int main (int argc, char ** argv)
{
char *dev_name = "/dev/video0";
int fd = -1;
open_device (fd, dev_name);
}
结果:Cannot identify '/dev/video0': 2, No such file or directory
只需要读errno这个全局变量就可以获得失败原因
#include <stdio.h>
#include <string.h>
#include <errno.h>
static void open_device (int * fd, char * dev_name)
{
*fd = open (dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);
if (-1 == *fd)
{
fprintf (stderr, "Cannot open '%s': %d, %s\n", dev_name, errno, strerror (errno));
exit (EXIT_FAILURE);
}
}
int main (int argc, char ** argv)
{
char *dev_name = "/dev/video0";
int fd = -1;
open_device (fd, dev_name);
}
结果:Cannot identify '/dev/video0': 2, No such file or directory
相关文章推荐
- linux下错误的捕获:errno和strerror的使用
- 用perror()或strerror()打印错误信息
- linux下错误的捕获:errno和strerror的使用
- linux下错误的捕获:errno和strerror的使用
- linux下错误的捕获:errno和strerror的使用
- linux下错误的捕获:errno和strerror的使用
- linux下错误的捕获:errno和strerror的使用
- linux下错误的捕获:errno和strerror的使用
- linux系统编程之错误处理:perror,strerror和errno
- 关于Linux系统编程的错误处理:errno、perror、strerror
- linux下错误的捕获:errno和strerror的使用
- linux下错误的捕获:errno和strerror的使用
- Linux系统编程之错误处理:perror,strerror和errno
- C/C++错误分析errno,perror,strerror和GetLastError()函数返回的错误代码的意义
- linux系统编程之错误处理:perror,strerror和errno
- linux下错误的捕获:errno和strerror的使用
- linux下的错误捕获errno和strerror()
- 使用临时文件mkstemp和输出errno对应的错误描述信息strerror
- linux下错误的捕获:errno和strerror的使用
- linux下错误的捕获:errno和strerror的使用