c语言所有的errno枚举值含义


可以通过以下代码,获取所有的错误码信息:

#include <string.h> /* for strerror */
#include <errno.h>
#include <stdio.h>


int main(int argc, char ** argv)
{
    int i = 0;
    for(i = 0; i < 256; i++)
        printf("errno-%02d is: %s\n", i, strerror(i));
    return 0;
}

编译此程序用命令:

gcc -Wall strerror.c
执行程序:
./a.out
输出如下:
errno-00 is: Success
errno-01 is: Operation not permitted
errno-02 is: No such file or directory
errno-03 is: No such process
errno-04 is: Interrupted system call
errno-05 is: Input/output error
errno-06 is: No such device or address
errno-07 is: Argument list too long
errno-08 is: Exec format error
errno-09 is: Bad file descriptor
errno-10 is: No child processes
errno-11 is: Resource temporarily unavailable
errno-12 is: Cannot allocate memory
errno-13 is: Permission denied
errno-14 is: Bad address
errno-15 is: Block device required
errno-16 is: Device or resource busy
errno-17 is: File exists
errno-18 is: Invalid cross-device link
errno-19 is: No such device
errno-20 is: Not a directory
errno-21 is: Is a directory
errno-22 is: Invalid argument
errno-23 is: Too many open files in system
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C语言中的`read()`函数是用于从文件描述符(file descriptor)中读取数据的函数,其原型如下: ```c #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); ``` `read()`函数的三个参数含义如下: - `fd`:文件描述符,表示从哪个文件中读取数据。可以是标准输入、标准输出、标准错误输出,也可以是程序自己创建的文件或管道等。 - `buf`:缓冲区,用于存放读取到的数据。 - `count`:读取的最大字节数,即缓冲区的大小。 `read()`函数返回为成功读取的字节数,如果返回-1,则表示读取失败。 ### 回答2: C语言的read()函数是用来从文件中读取数据的函数。它的参数含义如下: 第一个参数为文件描述符(file descriptor),它是用来标识要读取的文件的唯一标识符。文件描述符通常是一个非负整数,用于与已经打开的文件相关联。比如,stdin对应的文件描述符为0,stdout对应的文件描述符为1,stderr对应的文件描述符为2。对于从文件中读取数据,我们可以通过打开文件获得一个文件描述符,然后将该文件描述符作为read()函数的第一个参数。 第二个参数为存储读取数据的缓冲区指针。缓冲区是一个连续的内存区域,用于存储read()函数读取的数据。我们需要提供一个指向已经分配好内存的缓冲区的指针,并且确保缓冲区足够大,以便容纳从文件中读取的数据。read()函数将会把读取的数据存储到这个缓冲区中。 第三个参数为读取数据的最大字节数。我们需要指定要从文件中读取的最大字节数。read()函数将会根据这个参数,从文件中读取指定字节数的数据到缓冲区中。如果文件中的实际可读字节数小于最大字节数,read()函数将只会读取实际可读的字节数。 read()函数的返回为实际读取的字节数。它返回一个非负整数,表示成功读取的字节数。如果返回为0,表示已经到达文件末尾。如果返回为-1,表示读取发生错误,错误的原因可以通过errno变量获得。 综上所述,C语言read()函数的参数含义包括文件描述符、读取数据的缓冲区指针以及读取的最大字节数。 ### 回答3: c语言中的read()函数是用来从文件描述符中读取数据的函数。它的参数含义如下: 1. 文件描述符(file descriptor):read()函数的第一个参数是一个整数类型的文件描述符,用于指定要读取的文件或套接字。文件描述符是一个唯一标识已打开文件或套接字的数字。 2. 缓冲区(buffer):read()函数的第二个参数是一个指针,指向一个用于存储读取数据的缓冲区。缓冲区是一块在内存中分配的连续空间,用于临时存放读取的数据。 3. 缓冲区大小(buffer size):read()函数的第三个参数指定了缓冲区的大小,即能够存放的最大数据量。read()函数将从文件描述符中读取的数据存储在缓冲区中,直到读取的数据量达到指定的大小为止。 返回:read()函数返回读取的数据量,以字节数表示。如果读取成功,则返回非负整数;如果到达文件末尾,则返回0;如果发生错误,则返回-1,并设置errno变量以指示具体的错误类型。 需要注意的是,read()函数是按字节读取数据的,因此读取的数据可能不是以字符串形式表示,而是以二进制形式表示。如果需要将读取的数据解释为特定的类型(如整数、字符串等),需要进行相应的转换操作。另外,read()函数是一个阻塞函数,当没有数据可读时,它将阻塞程序的执行,直到有数据可读为止。因此,在使用read()函数时需要注意处理阻塞的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值