4

UNIXファイルのバッファリングをオンまたはオフにする短いCプログラムを作成しました。以下のコードは、それをオンにするためのものです。fcntl を使用して設定を取得し、O_SYNC フラグを設定してから、設定をカーネルに書き戻します。しかし、設定を再度取得すると、O_SYNC フラグが設定されていません。

int result, s;
s = fcntl(*fd, F_GETFL);
s |= O_SYNC; // set SYNC bit
result = fcntl(*fd, F_SETFL, s);

if( result == -1 )
   perror("setting SYNC");
else
{
    // Check buffering is on
    s = fcntl(*fd, F_GETFL); //
    if((s & O_SYNC) == O_SYNC) // check if SYNC bit is set
        printf("In function buffering_off(): Buffering is OFF\n");
    else
        printf("In function buffering_off(): Buffering is ON\n");
}

どんな助けでも大歓迎です。乾杯 :)

4

1 に答える 1