初心者です。cygwinでC++言語の勉強はじめました。
flockが今ひとつ、わからないんですが質問させてください。
下のプログラムで
1、�@があると出力は、"ここ"
2、�@がないと出力は "ここ:whileに入れました:hogehoge"
になります。

どちらも!finのエラーはないので、fin.open("hoge.txt");
ではオープンできてるみたいなのですが、
2、ではgetlineでなにも読めていないようで不思議です。

なんだか、自分でロックして自分が読み込めなくなってるんですが。。。
ロックしてから、読み込んで、表示ということがしたいです。
どのように修正すればよいのでしょうか。

--------------------------------------------------
#hoge.txtの内容:"hogehoge"

プログラム:
// #include <iostream> <fstream> <string>
    int n = open("hoge.txt",O_RDWR);
    flock(n,LOCK_EX |LOCK_NB);//・・・�@
    std::ifstream fin;
    fin.open("hoge.txt");
     if(!fin){ printf("err:fin");}
    std::string s;
    printf("ここ");
    while(getline(fin,s)){
        printf(":whileに入れました:");
        std::cout << s << std::endl;
    }
    close(n);