• UNIX 系统调用函数errno返回值搜集(in updating )


    当Unix系统级函数遇到错误时,它们会典型地返回-1,并设置全局整数变量errno来表示什么出错了

    阅读redis源码的时候,发现如果对系统级函数出错时的errno比较熟悉,写起程序来会游刃有余不少。所以,趁着学习APUE和CSAPP的时候,将自己遇到的常用系统级函数在出错时候返回的errno总结起来, 另外,C语言中文网 http://c.biancheng.net/ 中已经给出了很多系统级函数的错误代码总结,所以此文章主要会用于更新一些我用到过的,以及前述网站没有提到的函数错误代码。

     

    1. 进程控制

    #include <sys/types.h>
    #include <sys/wait.h>
    
    pid_t waitpid(pid_t pid, int *status, int options);

    如果调用进程没有子进程,那么waitpid返回-1,并设置errno为ECHILD

    如果waitpid函数被一个信号中断,那么它返回-1,并设置errno为EINTR

     

    2. UNIX标准及其限制:

    #include <unistd.h>
    long sysconf(int name); long pathconf(const char *pathname, int name); log fpathconf(int fd, int name);

    如果name 参数并不是一个合适的常量,这3个函数都返回 -1, 并把errno设置为EINVAL

    3.文件I/O:

    #include <unistd.h>
    
    offt_t lseek(int fd, off_t offset, int whence);

    如果文件描述符指向的是一个管道、FIFO或网络套接字,因为这些文件不可以设置偏移量,所以lseek返回-1,并将errno设置为ESPIPE

  • 相关阅读:
    xp+Eclipse+Android开发环境搭建
    ADT下载地址整理
    Iris Network Traffic Analyzer简易教程
    cadence实用技巧
    How to solve "drivers/ner/igbvf/igbvf.h:129:15: error: duplicate member ‘page’"
    Python–ToDay(01)python基本数据类型 二进制—>十六进制
    OpenStack认识
    新的一天,我只想静静
    linux学习第一阶段
    冒泡排序
  • 原文地址:https://www.cnblogs.com/viggoxskingdom/p/4985545.html
Copyright © 2020-2023  润新知