写入int或char时,read()函数的结果不同

时间:2013-06-04 12:00:09

标签: c++ linux unistd.h

我在文件描述符上使用read() unistd.h。我需要将前4个字节读取到int变量,其余的读取到unsigned char数组。

到目前为止,这不适用于获取前4个字节:

unsigned int myInt = 0;
status = read (fd, &myInt, sizeof(myInt);

read()返回-1,myInt保持为0。

读取到char缓冲区然而起作用:

char buf[512];
status = read (fd, buf, sizeof(buf);

read()正确返回fd中的内容。

我检查过,unsinged int是我目标上的四个字节。

我在这里看不到什么?

编辑:errno 断管。 它不是我正在阅读的常规文件,而是由gadgetfs制作的文件描述符,用于从USB接收数据并将数据发送到USB。

0 个答案:

没有答案