-
读写
- 两类文件读写的函数
- 不带缓冲区的文件读写函数: POSIX标准,系统调用接口,操作fd
open() read() write() close() lseek()
- 带缓冲区的文件读写函数: ANSI标准,标准I/O C库接口,操作流
fopen() fread() fwrite() fseek() fclose()
从图上可以看出来,标准c库调用了POSIX接口中的系统调用
- 不带缓冲区的文件读写函数: POSIX标准,系统调用接口,操作fd
还会用到gets/fgets/puts/fputs
POSIX标准与ANSI标准
ANSI C 的目标是为各种操作系统上的 C 程序提供可移植性保证,而不仅仅限于 UNIX。 该标准不仅定义了 C 编程语言的语发和语义,而且还定义了一个标准库。这个库可以根据 头文件划分为 15 个部分,其中包括:字符类型 (<ctype.h>)、错误码 (<errno.h>)、 浮点常数 (<float.h>)、数学常数 (<math.h>)、标准定义 (<stddef.h>)、 标准 I/O (<stdio.h>)、工具函数 (<stdlib.h>)、字符串操作 (<string.h>)、 时间和日期 (<time.h>)、可变参数表 (<stdarg.h>)、信号 (<signal.h>)、 非局部跳转 (<setjmp.h>)、本地信息 (<local.h>)、程序断言 (<assert.h>) 等等。
电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE) 最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性。
**关于系统调用,c,c++的I/O和文件读写,开一篇新的备忘来记录,https://www.jianshu.com/writer#/notebooks/42912661/notes/74155287/preview
**
- 属性操作
- 获取属性stat/lstat/fstat(区别在于是通过传入 路径/链接/文件描述符 作为参数来指定文件)
注意属性信息存在结构体 struct stat中 - 修改访问权限chmod/fchmod(区别同上)
- 修改用户ID组ID:chown/fchown/lchown(同上)
- 获取用户信息getpwuid/getpwnam
- 改变文件大小truncate/ftruncate
- 获取时间属性utime
- 改变已经打开的文件属性 fcntl
- 文件重命名rename renameat
- 获取属性stat/lstat/fstat(区别在于是通过传入 路径/链接/文件描述符 作为参数来指定文件)
- 目录操作
- 打开 opendir
- 读取 readdir
- 关闭 closedir
- 目录创建删除 mkdir mkdirat rmdir
- 文件共享 以及dup dup2
- 文件链接 link linkat unlink unlinkat remove
- 符号链接 symlink symlinkat
网友评论