Unix-system-calls-fdatasync

提供:Dev Guides
移動先:案内検索

[top]#

|http://www.google.com/[Google] | a|

Web This Site
  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

[cols=",,,,,,,",]

| |  Home   | |  References   | |  Discussion Forums   | |  About TP  

[width="100%",cols="100%",]

a| == fdatasync()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

fdatasync-ファイルのコア内データをディスク上のデータと同期します

概要

#include <unistd.h> int fdatasync(int fd);

説明

*fdatasync* ()は、ファイルのすべてのデータバッファーをディスクにフラッシュします(システムコールが戻る前)。 *fsync* ()に似ていますが、アクセス時間などのメタデータを更新する必要はありません。

データベースまたはログファイルにアクセスするアプリケーションは、多くの場合、小さなデータフラグメント(ログファイルの1行など)を書き込み、すぐに fsync ()を呼び出して、書き込まれたデータがハードディスクに物理的に保存されるようにします。 残念ながら、 fsync ()は常に2つの書き込み操作を開始します。1つは新しく書き込まれたデータ用で、もう1つはiノードに保存された変更時間を更新するためのものです。

変更時間がトランザクションの概念の一部でない場合は、 fdatasync ()を使用して、不必要なinodeディスク書き込み操作を回避できます。

返り値

成功すると、ゼロが返されます。 エラーの場合、-1が返され、_errno_が適切に設定されます。

エラー

Error Code Description
EBADF fd is not a valid file descriptor open for writing.
EIO An error occurred during synchronization.
EROFS, EINVAL fd is bound to a special file which does not support synchronization.

BUGS

現在(Linux 2.2) fdatasync ()は fsync ()と同等です。

可用性

*fdatasync* ()が利用可能なPOSIXシステムでは、 *_ POSIX_SYNCHRONIZED_IO* は<unistd.h>で0より大きい値に定義されます。 ( *sysconf* (3)も参照してください。)

準拠

POSIX.1-2001。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

|  

[cols="^",]

|Advertisements