read函数linux(read函数 linux)

read函数linux(read函数

linux中read如何从文件读取数据?

可以使用如下代码来实现:

注意:以下实例省略了错误处理。

#include <stdio.h>

#include <string.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

typedef struct

{

char name;

int age;

} Person;

int main(int argc, char **argv)

{

// open

int fd = open(“name.file”, O_RDWR|O_CREAT, 0666);

// write

Person zhang3;

memset((void*)&zhang3, 0x00, sizeof(Person));

strcpy(zhang3.name, “zhang3”);

zhang3.age = 42;

write(fd, (void*)&zhang3, sizeof(Person));

// lseek

lseek(fd, 0, SEEK_SET);

// read

Person li4;

memset((void*)&li4, 0x00, sizeof(Person));

read(fd, (void*)&li4, sizeof(Person));

printf(“%sn”, li4.name);

printf(“%dn”, li4.age);

// close

close(fd);

return 0;

}

linuxC函数write()写入的数据是如何存储的?read()又是如何读取的?

使用二进制存储

write(fd, &student, sizeof(student));

read(fd, &student, sizeof(student));

如果要读取里面第3个student的内容:

lseek(fd, 2 * sizeof(student), SEEK_SET); //即从开始搜索2个student那么长。

这样的前提是student中没有指针,因为每次运行指针的内容是不确定的。

Linux下read函数默认到底是阻塞的还是非阻塞的?

不知题主的read是指socket的read还是文件的read。

默认情况下,socket的read是阻塞的; 对文件进行read,要看内核态的read接口是注册为同步接口还是异步接口(可参见file_operations结构体)

linux中rwx分别代表什么?

linux中rwx分别代表:

r(read)——读:对文件查看该源文件内容,对目录有查看的权限。

w(white)——写:对该源文件进行编辑,可以移动、新建、修改、删除该目录中的内容。

x(eXecute) ——执行/运行:运行该文件和目录。

前三个"rwx"代表该用户,中间三个"rwx"代表该用户所属组,末尾三个“rwx”代表其他用户。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平