void perror(const char *msg);
它是基于
errno
的当前值,在标准错上产生一条
出
错
信息
,然后返回。
它先输
出
由msg字符串,然后是一个冒号后头接着对应于
errno
值的
出
错
信息
。
例: perror("sendto");
打印
出
:sendto: Permission denied
2 strerror
头文件:st...
一般当函数错误时,我们会选择
打印
errno
,但实际
打印
出
的
errno
是一个数字,还需要查手册进一步分析
出
错原因;我们可以使用两个函数直接
打印
出
错误
信息
,便于分析
perror,头文件为stdio.h
strerror,头文件为sting.h
函数原型:
void perror(const char *s)
举例当使用fopen时:
FILE *fd = fopen("/usr/cdn","r");
if (fd == NULL)
f
printf
(stderr,"fopen fail
linux
errno
查看和使用_believe209的博客-CSDN博客_
linux
获取
errno
Linux
网络编程常见错误码及分析_Justice_Gao的博客-CSDN博客
Linux
socket里的send和recv,阻塞与非阻塞socket、TCP与UDP的区别_瓶子里de肥皂泡的博客-CSDN博客
同步、异步、阻塞、非阻塞,以及IO模型的理解_落尘纷扰的博客-CSDN博客
Linux
下netstat命令详解_NoFaceNoSkin的博客-CSDN博客_netstat命令
当
linux
系统函数
出
错时,通常会返回一个负值,而且整型变量
errno
通常被设置为具有特定
信息
的值。例如,open 函数如果成功执行
则返回一个非负文件描述符,如
出
错则返回−1。在 open
出
错时,有大约15种不同的
errno
值(文件不存在、权限问题等)。而有些函数对于
出
错则使用另一种约定而不是返回负值。例如,大多数返回指向对象指针的函数,在
出
错时会返回一个null指针。
文件<
errno
.h>中定义了
errno
以及可以赋与它的各种常量。这些常量都以字符E开头。
通常后台服务器程序都必须有且只有一个进程,那么如何单进程呢?
本例子是通过flock函数对/var/run/myserver.pid记录pid文件的进行加锁
若加锁不正常,说明后台服务进程已经在运行了,这时则直接报错退
出
若加锁成功,说明后台服务进程没有在运行,这时可以正常启用进程
后台服务程序单进程控制
详细不多说,直接看代码
#include <stdio>
#include <stdlib>
#include <string>
#include <unistd>
#include <
errno
>
#include <fcntl>
#define
int main() {
char buf[] = "Hello, world!";
ssize_t ret = write(STDOUT_FILENO, buf, sizeof(buf));
if (ret < 0) {
perror("write error");
return 0;
在执行该程序时,如果write失败,会输
出
类似如下的错误
信息
:
write error: Bad file descriptor
其中,"Bad file descriptor"就是错误
信息
,而错误码则会在该
信息
之前
打印
出
来。