使用flock()锁定使用fopen()打开的文件

时间:2019-04-01 23:41:22

标签: c linux eclipse locking fopen

我正在处理公司中某人为Linux编写的旧C / C ++代码。 该代码使用fopen()打开文件,然后使用flock()锁定文件:

FILE *fp=fopen("text.txt", "wt");
flock( fp, LOCK_EX );

问题是,当我在Linux上使用Eclipse编译代码时,编译器会引发错误:

    invalid conversion from ‘FILE*’ {aka ‘_IO_FILE*’} to ‘int’

flock()显然将int作为第一个参数。

我可以使用什么功能将“ FILE *”转换为int?

1 个答案:

答案 0 :(得分:2)

您需要fileno(3)

flock( fileno(fp), LOCK_EX);