-
对于Linux的fsync,下列哪个说法是正确的?
A. 文件的脏页以及metedata会同步到存储设备
B. 文件的脏页会同步到存储设备,但不含文件的metedata
C. 新同步的文件内容一定不会丢失
D. fsync比fdatasync的性能更好正确答案:A
畅通的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多说磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重写该缓冲区以便存放其他磁盘块数据时,再讲缓冲排入输出队列,然后待其达到队首时,才进行实际的I/O操作。这种输出方式称为延迟写(delayed-write),延迟写减少了磁盘读写次数,但是降低了文件内容的更新速度,使得欲写到文件中的数据在一段时间内没有写到磁盘上。当系统发生故障时,这种延迟就可能造成文件更新内容的丢失。为了保证磁盘上世纪文件系统与缓冲区高速缓存中内容的一致性,UNIX系统提供了:
sync函数:只是将所有修改过的块缓冲区排入写队列,然后就返回,它不等待实际写磁盘操作结束。通常称为update的系统守护进程会周期性的(一般每隔30秒)调用sync函数,这就保证了定期冲洗内核的块缓冲区,命令sync(1)也调用sync函数。
fsync函数:只对有文件描述符files指定的单一文件起作用,并且等待写磁盘操作结束,然后返回,faync可用于数据库这样的应用程序,这种应用程序需要确保将修改过的块立即写到磁盘上。
fdatasync函数:类似于fsync,但它只影响文件的数据部分。而除数据外,fsync还会同步更新文件的属性。
选项D错误,是因为fsync出了同步文件的修改内容(脏页),fsync还会同步文件的描述信息(metadata,包含size、访问时间st_time&st_mtime等等),因为文件的数据和metadata存放在硬盘的不同地方,因此fsync至少需要两次IO写操作。
援引文章:https://blog.csdn.net/zhouxinlin2009/article/details/89633464 -
Linux文件权限一共10位长度,从前数第5-7位表示内容()。
A. 其他用户的权限
B. 文件所有者所在组的权限
C. 文件类型
D. 文件所有者的权限正确答案:B
-
Linux系统中,文件中的权限是775表示的意思?
A. 文件所有者可读可写可执行
B. 与文件所有者同属一个用户组的其他用户可读可执行
C. 其它用户组可读可执行
D. 其它用户组可读可写可执行正确答案:A、B、C