unix环境编程学习-chapter 3 IO读写操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了unix环境编程学习-chapter 3 IO读写操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1011字,纯文字阅读大概需要2分钟。
内容图文
![unix环境编程学习-chapter 3 IO读写操作](/upload/InfoBanner/zyjiaocheng/1060/6d70c934760b4c0fbae5f08f30b46728.jpg)
原子操作pread,pwirte
#include <unistd.h>
ssize_t pread(int fd, void *buf, size_t nbytes, off_t offset);//返回值:读到的字节数,若已到文件结尾则返回0,若出错返回-1
ssize_t pwrite(int fd,const void *buf ,size_t nbytes, off_t offset);//返回值:若成功返回已写的字节数,若出错返因-1
pread,pwirte,相当于顺序调用lseek和read或write,但调用pread,pwrite时无法中断其定位和读写操作,并且不能更新文件指针。
od -c file:查看file的实际内容
文件共享:
文件描述符:每个进程在进程表中都有一个记录项每个记录项中有一张打开的文件描述符表(所以才有必要复制文件描述符),每个文件描述符表项关联:(a)文件描述符标志。(b)指向一个文件表项的指针。
文件表:内核为所有打开的文件维护一张文件表,每个文件表项包含:(a)文件状态标志(读、写、增写、同步、非阻塞等)。(b)当前文件的偏移量。(c)指向该文件v节点表项的指针。
v节点:每个打开的文件(或设备)都有一个v节点结构。包含了文件类型和对此文件进行各种操作的函数的指针信息。对于大多数文件,v节点还包含了该文件的i节点(索引节点)。这些信息是在打开文件时从盘上读入内存的,所以所有关于文件的信息都是快速可供使用的。例如,i节点包含了文件的所有者、文件长度、文件所在的设备、指向文件在盘上所使用的实际数据块的指针等等。
fcntl函数可以改变已经打开文件的性质。
int fcntl(int filedes, int cmd ,....);
cmd:
F_DUPFD 复制一个现存的文件描述符。
F_GETFD or F_SETFD 获得/设置文件描述符标志
F_GETFL or F_SETFL 获得/设置文件状态标志 即open函数中mode的几种状态
F_GETOWN or F_SETOWN 获得/设置异步I/0权限
F_GETLK,F_SETLK or F_SETLKW 获得/设置记录锁
原文:http://dashou.blog.51cto.com/1414040/1789405
内容总结
以上是互联网集市为您收集整理的unix环境编程学习-chapter 3 IO读写操作全部内容,希望文章能够帮你解决unix环境编程学习-chapter 3 IO读写操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。