unix环境编程学习-chapter3IO读写操作-创新互联

原子操作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 获得/设置记录锁

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

标题名称:unix环境编程学习-chapter3IO读写操作-创新互联
文章来源:https://www.cdcxhl.com/article22/csgsjc.html

成都网站建设公司_创新互联,为您提供用户体验软件开发移动网站建设网站设计公司企业网站制作网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司