- 博客(9)
- 收藏
- 关注
原创 标准I/O库
1.简介标准I/O库控制比如缓冲分配和使I/O以最理想的大小操作,从而避免我们担心正确的缓冲大小。2.流和文件对象 当一个文件打开后,文件描述符被返回,而且文件描述符被用来I/O操作。标准I/O库,我们讨论流(streams)。当我们用标准I/O库打开或者创建一个文件,我们就说文件已经和一个流关联了。2.1流的定向(a stream's orientation) AS
2017-03-29 11:33:13 399
原创 futimens,utimensat,utimes函数
1.futimens,utimensat函数原型#includeint futimens(int fd, const struct timespec times[2]);int utimensat(int fd, const char* path, const struct time spec times[2], int flag);成功返回0,失败返回-1.2.futimen
2017-03-23 17:31:46 1971
原创 link,linkat,unlink,unlinkat,remove函数
1.link,linkat函数1.1函数原型#include int link(const char* existingpath, const char* newpath);int linkat(int efd, const char* existingpath, int nfd, const char* newpath,int flag);成功返回0,失败返回-1.1.2
2017-03-22 12:26:58 2139 1
原创 编译时候遇到的杂事
1.编译文件的时候加载失败。可能是库文件所在路径没有加载成功 可以在/etc/ld.so.conf文件中修改,在后面加上库文件所在的路径名,然后退出执行ldconfig即可解决。
2017-03-22 09:43:47 223
原创 文件类型、文件用户ID组ID、文件访问许可
1.文件类型1.文件类型分类a.普通文件:最常见的文件类型,该类文件中包含一个类型的数据。对于UNIX内核来说数据是文本还是二进制文件并没有区别。 所有的普通文件内容的解释都留给应用程序去操作这个文件。一个最大的例外是二进制可执行文件。为了执行一个程序,内核必须知道它的类型。所有的二进制可执行文件遵从一个形式允许 内核识别去哪里装在程序的文本和数据。b.目录:包含其它
2017-03-08 14:59:53 1598
原创 stat函数
1.函数原型#includeint stat(const char* pathname, struct stat* buf);int stat(int fd, struct stat* buf);int stat(const char* pathname, strcut stat* buf);int fstatat(int fd, const char* pathname, s
2017-03-07 09:06:22 433
原创 fcntl函数
1.函数原型#includeint fcntl(int fd, int cmd, .../*int arg*/);返回值:成功依赖于cmd,失败返回-1.该函数能够改变已经打开文件的属性。2.cmd相关的介绍第三个参数通常是根据cmd而来的一个整数。但是后面当我们讨论记录锁的时候,第三个参数时一个指向结构体的指针。fcntl函数有五种作用。1.复制一个存在的
2017-03-06 09:07:11 372
原创 sync,fsync,fdatasync函数
1.写时延迟通常unix系统有buffer cache或者page cache在kernel里面,通过这些磁盘I/O来进行工作。当我们写数据到文件时,数据通常被内核拷贝到cache里面以待以后写到磁盘。这被称为写时延迟。内核最终都会讲写时延迟的数据块写到磁盘中,通常当它需要重新使用buffer的来写到磁盘时。为了保证文件系统和cache内容在磁盘上的一致性,从而有了sync fsy
2017-03-03 15:39:05 410
原创 原子操作
1.原子操作的原因以前的UNIX系统不支持O_APPEND选线,所以程序需要如下编辑if(seek(fd,0L,2) printf("seek error\n");if(write(fd,buf,100)!=100) printf("write error");但是该程序在多进程(线程)里面会有问题。假设两个独立的进程A,B,都有打开同一个文件,但是都没有O_APPEN
2017-03-02 09:52:54 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人