read函数返回的是列表(read函数linux)-编程知识网

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命令SHELL编程:数若大于0则输出该数;若小于或等于0则输出0值的程序怎么写?

#!/bin/bashecho “Please input a number:”#键盘读取赋值给变量numread num#判断num的值是否为数字,条件否则直接退出expr $num + 0

1>/dev/null

2>&1if thenecho “${num} is not a number!”exit 0fi#判断变量num的值是否大于0if thenecho $numelseecho 0fi

linux read命令作用?

1、linux系统中read命令用于从标准输入中读取数据,进而给变量赋值。

 2、直接使用read,不加变量名称,变量赋值给REPLY。

3、通过-p参数加入提示。

4、通过-t参数限制输入变量值的时间。

 5、通过-s 选项隐藏输入的变量值,比如在屏幕输入密码。

 6、通过-n参数实现限定输入变量的长度。

 7、使用-r参数限制为原始字符串

 8、从文件中读取变量值

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;

}