对UNIX文件描述符的短写
在FreeBSD 7.2中,什么时候可以对文件描述符进行短写 我指的是“write”系统调用返回的写入字节数少于请求的字节数的情况 我说的是ufs文件系统中普通文件的描述符,我们可以通过调用对UNIX文件描述符的短写,unix,file,Unix,File,在FreeBSD 7.2中,什么时候可以对文件描述符进行短写 我指的是“write”系统调用返回的写入字节数少于请求的字节数的情况 我说的是ufs文件系统中普通文件的描述符,我们可以通过调用open()write()返回的字节数少于请求的字节数: 如果存在进程上下文开关或接收到SIGINT,则write()不是原子的。 在读取整个缓冲区之前发生EOF时,write()返回的字节数较少 如果fd设置为非阻塞,则其他瞬态条件可能会导致write()返回的写入字节数少于请求的字节数-这是实现定义的行为
open()
write()返回的字节数少于请求的字节数:
如果存在进程上下文开关或接收到SIGINT,则write()不是原子的。
在读取整个缓冲区之前发生EOF时,write()返回的字节数较少
如果fd设置为非阻塞,则其他瞬态条件可能会导致write()返回的写入字节数少于请求的字节数-这是实现定义的行为。
例如,在像/tmp这样的文件系统上出现短暂的磁盘满错误。NFS文件系统有时表现不好:close()返回的错误可能是检测NFS装载文件的write()上磁盘已满错误的唯一方法