我有一个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)?
答案 0 :(得分:0)
您可以使用open而不是fopen并传入O_EXCL标志。