【2016/1】文件操作 file_IO 系统调用与库函数
2016-01-28 00:12
489 查看
句柄:filediscriber(fd)
内存的实模式和虚模式:刚开机内存使用实模式,之后使用虚模式来运行应用。
系统调用是最快的 但是占用了内核 不建议频繁使用
库调用可移植性好 对内核依赖性低
— 查 两者区别 原理 性能 效益
stat fstat lstat 函数中的 *buf 是要求一片空间而不是一个指针
— 区别是 fstat 使用fd lchown 使用对象是link文件
— 同理 chown fchown lchown 是一样的
cp -p 带属性拷贝
ps 定制 -eo <定制项目>
lseek 中的 whence :
- SEEK_SET 从头开始
- SEEK_CUR 从之前的指针开始相对偏移
- SEEK_END 从尾开始
lseek(fd, SEEK_CUR, 0) 返回当前指针所指的位置
系统调用存在切换内核上下文的问题 会使内核运行速度减慢 尤其是多人调用
如果大量单人调用速度提高 反之速度降低
可以使用fdopen 和 fileno 来转换系统调用与标准库
linux下可以用uname获取其版本
fopen 返回NULL 且错误码为21: EISDIR 是目录
或者用stat的st_mode中对文件类型的修饰
S_ISDIR(stat.st_mode) -> 是目录
Hash算法! -> 适用的数据结构
mira DB -> mysql 被收购后作者的作品
文件描述符本质为一个整型的数据,是对一个数据表的索引值
内存的实模式和虚模式:刚开机内存使用实模式,之后使用虚模式来运行应用。
CPU复位(reset)或加电(power on)的时候以实模式启动,处理器以实模式工作。 虚模式则是以映射的形式将应用使用的内存地址虚拟化映射到实际内存上。
man 2 open #打开文件的各种方式(flags) man 2 read / write #文件的读写
系统调用是最快的 但是占用了内核 不建议频繁使用
对fd的操作是类UNIX系统的操作
库调用可移植性好 对内核依赖性低
库函数使用FILE指针的流式传输,是标准库的内容
— 查 两者区别 原理 性能 效益
stat fstat lstat 函数中的 *buf 是要求一片空间而不是一个指针
— 区别是 fstat 使用fd lchown 使用对象是link文件
— 同理 chown fchown lchown 是一样的
cp -p 带属性拷贝
ps 定制 -eo <定制项目>
lseek 中的 whence :
- SEEK_SET 从头开始
- SEEK_CUR 从之前的指针开始相对偏移
- SEEK_END 从尾开始
lseek(fd, SEEK_CUR, 0) 返回当前指针所指的位置
free #查看内存与交换区使用率
流的读写(fread/fwrite)中的大小是 块字节和块个数的乘积 返回值是块各个数 使用库函数(stdio)中的函数比较通用 易于移植 --- 而read write 是linux的内核中的函数 流读写是有缓存的! 会在close时进行刷新,而系统调用是及时的 基于流的打开文件会在内存中占用一片位置,将读写的内容放在缓存中,最后再写入硬盘 流操作时对系统调用的封装,减少了IO的次数
系统调用存在切换内核上下文的问题 会使内核运行速度减慢 尤其是多人调用
如果大量单人调用速度提高 反之速度降低
可以使用fdopen 和 fileno 来转换系统调用与标准库
linux下可以用uname获取其版本
fopen 返回NULL 且错误码为21: EISDIR 是目录
或者用stat的st_mode中对文件类型的修饰
S_ISDIR(stat.st_mode) -> 是目录
fdopendir()//打开目录 fcntl() //对文件的操作(删除) unlink() //同上 system() //用shell命令删除 stat() //用errno获取文件是否存在 //系统调用: opendir() readdir() //依次读目录下一个文件的名字当返回为空时读取结束 mkdir() //创建一个目录(mode_t 用stat的mode值) chmod() //改变st_mode值
Hash算法! -> 适用的数据结构
mira DB -> mysql 被收购后作者的作品
相关文章推荐
- Windows游戏编程:窗口
- mysql5.7.10安装
- poj3254
- Memcached, Redis, MongoDB区别
- android onNewIntent方法
- 值得推荐的C/C++框架和库 (真的很强大)
- Masonry 到底有多美?(下)
- SpringMVC接收复杂集合参数
- Linux 安装nginx 已通过该方法安装
- leetcode63-Unique Paths II
- x201i装win7 64位系统
- Feescale K60开发笔记5: K60 Bootloader++的使用
- 代码:输出幻方(魔方阵)
- Jenkins上War文件部署实战
- Objective-C Runtime 运行时与类的内部构造
- eclipse maven plugin 插件 安装 和 配置
- Unity学习之路(一)太空大战类游戏制作4
- Android RxJava 的详解(转)
- 微平台开发之生成带参数二维码
- Note++ 的快捷