デッドロックは複数のファイルをいじくるようになったら考えろ。

で、その例だと重い処理やユーザが多い場合トラブる。
Aがデータ読む→Bもデータを読む→Aがデータ更新→Bもデータ更新
の時、BはAによる変更がなされていない古いデータを参照、処理している事になる。
fopen→施錠→読む・処理・書き込み→close が正解。

開錠は?と思ったなら手元の本のロック関係の項目を読み返せ。