fcntl() の F_GETLK の返り値はどこに入るんでしょうか?
引数と同じ? でも入りません。Linux なんですが。
別のプロセスでロックを掛けておいて

use Fcntl;

$b = pack('s2l3', F_WRLCK, SEEK_SET, 0, 0, 0);
fcntl(F, F_GETLK, $b);

をしても $b に変化がない。

C言語で同じやつを作ると l_pid にちゃんとPIDが入って来ます。