新媒體與網(wǎng)站建設(shè)北京seo營(yíng)銷(xiāo)培訓(xùn)
在linux socket通信中,我們通常用到open/bind/read/write等內(nèi)部函數(shù),那么當(dāng)這些函數(shù)返回值為-1的時(shí)候,我們?cè)趺催M(jìn)一步定位呢!
(1)怎么打印出返回值出錯(cuò)的原因呢!系統(tǒng)調(diào)用的錯(cuò)誤都會(huì)存放在errno中
errno需要的頭文件:
#include<errno.h>
strerror頭文件,將錯(cuò)誤信息errno轉(zhuǎn)換為字符串信息,方便定位,strerror(eerno)
#include<string.h>
printf("err = %d, eer_str = %s\r\n", errno, strerror(errno));
返回值說(shuō)明:
#define EPERM 1 /* Operation not permitted */define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR 4 /* Interrupted system call */#define EIO 5 /* I/O error */#define ENXIO 6 /* No such device or address */#define E2BIG 7 /* Argument list too long */#define ENOEXEC 8 /* Exec format error */#define EBADF 9 /* Bad file number */#define ECHILD 10 /* No c