about exit/_exit and close/unlink
时间:2006-03-18 来源:rwen2012
please give me your idea.
_exit立刻进入内核,
exit则先执行一些清除工作,(包括调用执行各终止处理程序,关闭所有的标准I/O流等),然后才进入内核。它会对所有的打开流调用fclose函数,这样就会造成所有缓冲区的数据都被刷新(写到文件上)。
close(fd) 关闭一个已打开的文件描述符,如果其引用大于1,则将内核引用计数减1,关闭操作便算完成了,否则,内核则释放该表项,使它重新可以被使用。
unlink(pathname) 拆除一个目录表项。一个被打开的文件是不能被拆除的,如下:
open(pathname, mode);
unlink(pathname);
是不会被立刻被拆除的,要直最后文件被关闭该拆除工作才会执行。如果被拆除的文件是该文件的最后一个连接,则内核最终将释放该块。但是,如果该文件有多个连接,通过它的其它名字,仍能存取到该文件。
可以看到,close对文件描述符操作,而unlink则对文件操作。
_exit立刻进入内核,
exit则先执行一些清除工作,(包括调用执行各终止处理程序,关闭所有的标准I/O流等),然后才进入内核。它会对所有的打开流调用fclose函数,这样就会造成所有缓冲区的数据都被刷新(写到文件上)。
close(fd) 关闭一个已打开的文件描述符,如果其引用大于1,则将内核引用计数减1,关闭操作便算完成了,否则,内核则释放该表项,使它重新可以被使用。
unlink(pathname) 拆除一个目录表项。一个被打开的文件是不能被拆除的,如下:
open(pathname, mode);
unlink(pathname);
是不会被立刻被拆除的,要直最后文件被关闭该拆除工作才会执行。如果被拆除的文件是该文件的最后一个连接,则内核最终将释放该块。但是,如果该文件有多个连接,通过它的其它名字,仍能存取到该文件。
可以看到,close对文件描述符操作,而unlink则对文件操作。
相关阅读 更多 +
排行榜 更多 +