织梦网站怎么安装百度云搜索引擎入口官方
0. Linux应用编程
Linux应用编程是指,通过调用操作系统API来实现应用程序。
1. 文件IO
文件IO的意思是读写文件,IO是input/output。
// 常用的系统API
open、close、write、read、lseek
// exit、_exit、_Exit: 退出进程
// errno: error no(number, no.1),Linux给错误的编号
// perror: print error
int open(const char *pathname, int flags);
在linux系统中操作文件,需要以open文件开始,以close文件结束。
open将硬盘中的静态文件复制到内存中变成动态文件,得到一个文件描述符,然后对文件进行读写操作。
- open返回值: 是一个文件描述符(fd,file descriptor),文件描述符就是一个数字,用来区分一个程序打开的多个文件。
- flags: O_RDONLY(只读) O_WRONLY(只写) O_RDWR(读写) ;O_APPEND(追加) O_TRUNC(覆盖)
int close(int fd);
ssize_t read(int fd, void *buf, size_t count);
- fd: 表示要读取哪个文件,一般由open返回得到
- buf: 应用程序提供的一段内存缓冲区,用来存储读出的内容
- count: 要读取的字节数
- ssize_t类型: linux内核用typedef重定义的一个类型(其实就是int),返回值表示成功读取的字节数。
ssize_t write(int fd, const void *buf, size_t count);
- const void *buf: 输入型参数,应用程序提供的一段内存缓冲区,用来存储要写入的内容
off_t lseek(int fd, off_t offset, int whence);
动态文件在内存中是文件流的形式,文件流很长,当前正在操作的位置在GUI模式下用光标来标识,Linux下通过文件指针来表征这个正在操作的位置。read和write函数都是从当前文件指针处开始操作的。
文件指针,是文件管理表这个结构体里面的一个指针,是vnode中的一个元素。
2. 标准IO
标准IO由一系列的C库函数构成(fopen、fclose、fwrite、fread),在应用层添加一个缓冲机制,写入的内容不是直接进入内核中的buf,而是先进入应用层标准IO库自己维护的buf中。