fopen for writing but not exclusive
I want to use fopen("file", "w")
to open a file for writing but not exclusive. I.e. I want to have another process read the file while it is still open.
Note that I have a flush after every line so I won't miss anything. Writing will be idle at the time the other process reads from the file.
The documentation does not mention exclusive but experimenting shows that it is exclusive.
Is there a way?
visual-studio-2015
migrated from superuser.com Feb 11 at 13:26
This question came from our site for computer enthusiasts and power users.
add a comment |
I want to use fopen("file", "w")
to open a file for writing but not exclusive. I.e. I want to have another process read the file while it is still open.
Note that I have a flush after every line so I won't miss anything. Writing will be idle at the time the other process reads from the file.
The documentation does not mention exclusive but experimenting shows that it is exclusive.
Is there a way?
visual-studio-2015
migrated from superuser.com Feb 11 at 13:26
This question came from our site for computer enthusiasts and power users.
Is this a C or C++ application? Is your target application environment Windows or Win/RT or something else? What standard are you targeting (C99, C++11, etc.)?
– Richard Chambers
Feb 11 at 16:26
Which programming language does this target?
– Nico Haase
Feb 11 at 16:27
I'm using an old version of Borland C in Windows XP DOS command.com. So I doubt if any modern form of fopen will work. (Sorry I didn't mention that up front ... I just didn't think of it).
– eddyq
Feb 12 at 15:37
add a comment |
I want to use fopen("file", "w")
to open a file for writing but not exclusive. I.e. I want to have another process read the file while it is still open.
Note that I have a flush after every line so I won't miss anything. Writing will be idle at the time the other process reads from the file.
The documentation does not mention exclusive but experimenting shows that it is exclusive.
Is there a way?
visual-studio-2015
I want to use fopen("file", "w")
to open a file for writing but not exclusive. I.e. I want to have another process read the file while it is still open.
Note that I have a flush after every line so I won't miss anything. Writing will be idle at the time the other process reads from the file.
The documentation does not mention exclusive but experimenting shows that it is exclusive.
Is there a way?
visual-studio-2015
visual-studio-2015
edited Feb 11 at 16:25
Richard Chambers
10.1k24268
10.1k24268
asked Feb 8 at 14:44
eddyqeddyq
5181719
5181719
migrated from superuser.com Feb 11 at 13:26
This question came from our site for computer enthusiasts and power users.
migrated from superuser.com Feb 11 at 13:26
This question came from our site for computer enthusiasts and power users.
Is this a C or C++ application? Is your target application environment Windows or Win/RT or something else? What standard are you targeting (C99, C++11, etc.)?
– Richard Chambers
Feb 11 at 16:26
Which programming language does this target?
– Nico Haase
Feb 11 at 16:27
I'm using an old version of Borland C in Windows XP DOS command.com. So I doubt if any modern form of fopen will work. (Sorry I didn't mention that up front ... I just didn't think of it).
– eddyq
Feb 12 at 15:37
add a comment |
Is this a C or C++ application? Is your target application environment Windows or Win/RT or something else? What standard are you targeting (C99, C++11, etc.)?
– Richard Chambers
Feb 11 at 16:26
Which programming language does this target?
– Nico Haase
Feb 11 at 16:27
I'm using an old version of Borland C in Windows XP DOS command.com. So I doubt if any modern form of fopen will work. (Sorry I didn't mention that up front ... I just didn't think of it).
– eddyq
Feb 12 at 15:37
Is this a C or C++ application? Is your target application environment Windows or Win/RT or something else? What standard are you targeting (C99, C++11, etc.)?
– Richard Chambers
Feb 11 at 16:26
Is this a C or C++ application? Is your target application environment Windows or Win/RT or something else? What standard are you targeting (C99, C++11, etc.)?
– Richard Chambers
Feb 11 at 16:26
Which programming language does this target?
– Nico Haase
Feb 11 at 16:27
Which programming language does this target?
– Nico Haase
Feb 11 at 16:27
I'm using an old version of Borland C in Windows XP DOS command.com. So I doubt if any modern form of fopen will work. (Sorry I didn't mention that up front ... I just didn't think of it).
– eddyq
Feb 12 at 15:37
I'm using an old version of Borland C in Windows XP DOS command.com. So I doubt if any modern form of fopen will work. (Sorry I didn't mention that up front ... I just didn't think of it).
– eddyq
Feb 12 at 15:37
add a comment |
1 Answer
1
active
oldest
votes
Shared access on files is an OS-specific feature. fopen is too generic and does not provide that kind of control. You would need to use something more specific. If you are using a microsoft platform (assuming since you tagged for VS 2015) you can use _fsopen or _wfsopen - they have a third parameter to specify the shared access.
_fsopen("file", "w", _SH_DENYWR);
this will open the file for writing and allow others to read from it (but not write to it).
The argument
shflag
is a constant expression consisting of one of
the following manifest constants, defined inShare.h
.
- Term Definition
- _SH_COMPAT Sets Compatibility mode for 16-bit applications.
- _SH_DENYNO Permits read and write access.
- _SH_DENYRD Denies read access to the file.
- _SH_DENYRW Denies read and write access to the file.
- _SH_DENYWR Denies write access to the file.
Other OS/platforms may support some variation of fsopen too.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54631617%2ffopen-for-writing-but-not-exclusive%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Shared access on files is an OS-specific feature. fopen is too generic and does not provide that kind of control. You would need to use something more specific. If you are using a microsoft platform (assuming since you tagged for VS 2015) you can use _fsopen or _wfsopen - they have a third parameter to specify the shared access.
_fsopen("file", "w", _SH_DENYWR);
this will open the file for writing and allow others to read from it (but not write to it).
The argument
shflag
is a constant expression consisting of one of
the following manifest constants, defined inShare.h
.
- Term Definition
- _SH_COMPAT Sets Compatibility mode for 16-bit applications.
- _SH_DENYNO Permits read and write access.
- _SH_DENYRD Denies read access to the file.
- _SH_DENYRW Denies read and write access to the file.
- _SH_DENYWR Denies write access to the file.
Other OS/platforms may support some variation of fsopen too.
add a comment |
Shared access on files is an OS-specific feature. fopen is too generic and does not provide that kind of control. You would need to use something more specific. If you are using a microsoft platform (assuming since you tagged for VS 2015) you can use _fsopen or _wfsopen - they have a third parameter to specify the shared access.
_fsopen("file", "w", _SH_DENYWR);
this will open the file for writing and allow others to read from it (but not write to it).
The argument
shflag
is a constant expression consisting of one of
the following manifest constants, defined inShare.h
.
- Term Definition
- _SH_COMPAT Sets Compatibility mode for 16-bit applications.
- _SH_DENYNO Permits read and write access.
- _SH_DENYRD Denies read access to the file.
- _SH_DENYRW Denies read and write access to the file.
- _SH_DENYWR Denies write access to the file.
Other OS/platforms may support some variation of fsopen too.
add a comment |
Shared access on files is an OS-specific feature. fopen is too generic and does not provide that kind of control. You would need to use something more specific. If you are using a microsoft platform (assuming since you tagged for VS 2015) you can use _fsopen or _wfsopen - they have a third parameter to specify the shared access.
_fsopen("file", "w", _SH_DENYWR);
this will open the file for writing and allow others to read from it (but not write to it).
The argument
shflag
is a constant expression consisting of one of
the following manifest constants, defined inShare.h
.
- Term Definition
- _SH_COMPAT Sets Compatibility mode for 16-bit applications.
- _SH_DENYNO Permits read and write access.
- _SH_DENYRD Denies read access to the file.
- _SH_DENYRW Denies read and write access to the file.
- _SH_DENYWR Denies write access to the file.
Other OS/platforms may support some variation of fsopen too.
Shared access on files is an OS-specific feature. fopen is too generic and does not provide that kind of control. You would need to use something more specific. If you are using a microsoft platform (assuming since you tagged for VS 2015) you can use _fsopen or _wfsopen - they have a third parameter to specify the shared access.
_fsopen("file", "w", _SH_DENYWR);
this will open the file for writing and allow others to read from it (but not write to it).
The argument
shflag
is a constant expression consisting of one of
the following manifest constants, defined inShare.h
.
- Term Definition
- _SH_COMPAT Sets Compatibility mode for 16-bit applications.
- _SH_DENYNO Permits read and write access.
- _SH_DENYRD Denies read access to the file.
- _SH_DENYRW Denies read and write access to the file.
- _SH_DENYWR Denies write access to the file.
Other OS/platforms may support some variation of fsopen too.
edited Feb 11 at 16:35
Richard Chambers
10.1k24268
10.1k24268
answered Feb 11 at 16:11
Jeff R.Jeff R.
9621612
9621612
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54631617%2ffopen-for-writing-but-not-exclusive%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Is this a C or C++ application? Is your target application environment Windows or Win/RT or something else? What standard are you targeting (C99, C++11, etc.)?
– Richard Chambers
Feb 11 at 16:26
Which programming language does this target?
– Nico Haase
Feb 11 at 16:27
I'm using an old version of Borland C in Windows XP DOS command.com. So I doubt if any modern form of fopen will work. (Sorry I didn't mention that up front ... I just didn't think of it).
– eddyq
Feb 12 at 15:37