发布时间:2013-05-14 21:21:41
int unlink(const char *pathname)该函数用来删除pathname 指定的目录项,并将由pathname所引用的文件的链接数减一。但是文件的内容可能不会删除,如果此时有其他指向该文件的链接,则仍可通过其他链接访问文件。或是有进程打开了该文件,那么其内容也不会被删除所以当关闭一个文件时,内核首先检查打开该文件的进程,如.........【阅读全文】
发布时间:2013-05-14 14:52:03
与进程有关的的ID有以下几个或更多: 实际/有效用户id 实际/有效组id 设置用户id(SUID) 设置组id(SGID)下面我们一一来说明。我们先来说实际用户ID和实际组ID实际用户ID:当我们登陆linux时。我们需要输入用户名和密码。但对于系统来说他识别的其实是用户id。那么我们记的用户名和系统识别的用.........【阅读全文】
发布时间:2013-05-10 16:35:29
内核负责维护进程表。每个进程在其中都有记录。每个进程表中有个打开的文件描述符表。它记录了该文件描述符的标志和文件表指针。文件表中存放了该文件的当前偏移量。文件状态标志,引用计数,v节点指针(linux中用的是与文件系统无关的i节点)。当文件表中的引用计数为零时,该文件就会被关闭。我们知道dup用来复制一个描.........【阅读全文】
发布时间:2013-05-08 19:29:36
对于进程间对同一文件访问的同步问题。fcntl提供了一种记录锁的方法int fcntl(int filedes,int cmd,.../*arg*/)对于记录锁,cmd是F_GETLK ,F_SETLK和 F_SETLKW。第三个参数是一个指向flock结构的指针flock依赖于具体的实现,但它至少包含以下成员struct flock{shortl_type;/* F_RDLCK F_WRLCK F_UNL.........【阅读全文】
发布时间:2013-05-07 11:27:02
这里我们需要先说明一下,我们这里所说的文件共享并不是一般意义上的两个进程可以对同一个文件进行读写。而是共享同一个文件表。就是说这个文件的当前偏移量。文件状态标志等信息是共享的。下面我们就具体介绍这种共享。我们还要说明一下unix内核中关于打开文件的内核数据结构。中给出了们的关系模型.........【阅读全文】