如何禁止同一文件的多个fopen()

时间:2015-10-23 23:32:45

标签: c bash sh fopen environment

我有一个C程序,可以多次打开同一个文件:

FILE *fp1 = fopen("/path/to/file","r");
// Without/beore closing fp1
FILE *fp2 = fopen("/path/to/file","r");

我想让第二个fopen()失败,同时我运行程序。

假设我正在运行GNU Bash shell (/bin/bash)Bourne shell (/bin/sh)的C程序/可执行文件。

我是否可以在我的shell环境中进行任何设置/配置,以便它不允许同一程序同时打开同一个文件多次。这样第二个fopen()将失败(即将返回NULL)?

1 个答案:

答案 0 :(得分:0)

您可以使用open而不是fopen并传入O_EXCL标志。