Monday, 7 November 2011

How can I make sure that my program is the only one accessing a file? in C programming

How can I make sure that my program is the only one accessing a file?

By using the sopen() function (see FAQ IV.13), you can open a file in shared mode and explicitly deny
reading and writing permissions to any other program but yours. This task is accomplished by using the
SH_DENYWR shared flag to denote that your program is going to deny any writing or reading attempts by other
programs. For example, the following snippet of code shows a file being opened in shared mode, denying
access to all other files:
/* Note that the sopen() function is not ANSI compliant... */
fileHandle = sopen(“C:\\DATA\\SETUP.DAT”, O_RDWR, SH_DENYWR);
By issuing this statement, all other programs are denied access to the SETUP.DAT file. If another program
were to try to open SETUP.DAT for reading or writing, it would receive an EACCES error code, denoting
that access is denied to the file.

Cross Reference:

IV.13: How can I open a file so that other programs can update it at the same time?
IV.15: How can I prevent another program from modifying part of a file that I am modifying?

No comments:

Post a Comment