C++ Windows fopen() vs _fsopen()
MSDN for fopen() says " returns a pointer to the open file." For _fsopen() - " returns a pointer to the stream. ". Both return FILE*.
Can someone explain the difference, if any?
c++ windows
add a comment |
MSDN for fopen() says " returns a pointer to the open file." For _fsopen() - " returns a pointer to the stream. ". Both return FILE*.
Can someone explain the difference, if any?
c++ windows
1
_fsopen()
: Opens a stream with file sharing.
– Swordfish
Nov 27 '18 at 5:21
Just poorly defined terminology - "file" and "stream" are synonymous here.
– Harun
Nov 27 '18 at 5:31
Look at cplusplus.com/reference/cstdio/FILE Object type that identifies a stream.
– S.M.
Nov 27 '18 at 5:46
It is an alternative for the dangerous fopen(), which allows anybody else to write to the file at the same time. Also consider fopen_s(), the C11 Annex K alternative that is more likely to be portable.
– Hans Passant
Nov 27 '18 at 17:17
add a comment |
MSDN for fopen() says " returns a pointer to the open file." For _fsopen() - " returns a pointer to the stream. ". Both return FILE*.
Can someone explain the difference, if any?
c++ windows
MSDN for fopen() says " returns a pointer to the open file." For _fsopen() - " returns a pointer to the stream. ". Both return FILE*.
Can someone explain the difference, if any?
c++ windows
c++ windows
asked Nov 27 '18 at 5:06
valecavaleca
52
52
1
_fsopen()
: Opens a stream with file sharing.
– Swordfish
Nov 27 '18 at 5:21
Just poorly defined terminology - "file" and "stream" are synonymous here.
– Harun
Nov 27 '18 at 5:31
Look at cplusplus.com/reference/cstdio/FILE Object type that identifies a stream.
– S.M.
Nov 27 '18 at 5:46
It is an alternative for the dangerous fopen(), which allows anybody else to write to the file at the same time. Also consider fopen_s(), the C11 Annex K alternative that is more likely to be portable.
– Hans Passant
Nov 27 '18 at 17:17
add a comment |
1
_fsopen()
: Opens a stream with file sharing.
– Swordfish
Nov 27 '18 at 5:21
Just poorly defined terminology - "file" and "stream" are synonymous here.
– Harun
Nov 27 '18 at 5:31
Look at cplusplus.com/reference/cstdio/FILE Object type that identifies a stream.
– S.M.
Nov 27 '18 at 5:46
It is an alternative for the dangerous fopen(), which allows anybody else to write to the file at the same time. Also consider fopen_s(), the C11 Annex K alternative that is more likely to be portable.
– Hans Passant
Nov 27 '18 at 17:17
1
1
_fsopen()
: Opens a stream with file sharing.– Swordfish
Nov 27 '18 at 5:21
_fsopen()
: Opens a stream with file sharing.– Swordfish
Nov 27 '18 at 5:21
Just poorly defined terminology - "file" and "stream" are synonymous here.
– Harun
Nov 27 '18 at 5:31
Just poorly defined terminology - "file" and "stream" are synonymous here.
– Harun
Nov 27 '18 at 5:31
Look at cplusplus.com/reference/cstdio/FILE Object type that identifies a stream.
– S.M.
Nov 27 '18 at 5:46
Look at cplusplus.com/reference/cstdio/FILE Object type that identifies a stream.
– S.M.
Nov 27 '18 at 5:46
It is an alternative for the dangerous fopen(), which allows anybody else to write to the file at the same time. Also consider fopen_s(), the C11 Annex K alternative that is more likely to be portable.
– Hans Passant
Nov 27 '18 at 17:17
It is an alternative for the dangerous fopen(), which allows anybody else to write to the file at the same time. Also consider fopen_s(), the C11 Annex K alternative that is more likely to be portable.
– Hans Passant
Nov 27 '18 at 17:17
add a comment |
1 Answer
1
active
oldest
votes
The difference is that _fsopen()
takes one extra parameter than fopen()
and that is shflag
.
This flag specifies the type of sharing allowed. You can Permit/Deny the Read/Write to the file in different combinations.
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%2f53493076%2fc-windows-fopen-vs-fsopen%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
The difference is that _fsopen()
takes one extra parameter than fopen()
and that is shflag
.
This flag specifies the type of sharing allowed. You can Permit/Deny the Read/Write to the file in different combinations.
add a comment |
The difference is that _fsopen()
takes one extra parameter than fopen()
and that is shflag
.
This flag specifies the type of sharing allowed. You can Permit/Deny the Read/Write to the file in different combinations.
add a comment |
The difference is that _fsopen()
takes one extra parameter than fopen()
and that is shflag
.
This flag specifies the type of sharing allowed. You can Permit/Deny the Read/Write to the file in different combinations.
The difference is that _fsopen()
takes one extra parameter than fopen()
and that is shflag
.
This flag specifies the type of sharing allowed. You can Permit/Deny the Read/Write to the file in different combinations.
answered Nov 27 '18 at 6:30
P.WP.W
14.9k31452
14.9k31452
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%2f53493076%2fc-windows-fopen-vs-fsopen%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
1
_fsopen()
: Opens a stream with file sharing.– Swordfish
Nov 27 '18 at 5:21
Just poorly defined terminology - "file" and "stream" are synonymous here.
– Harun
Nov 27 '18 at 5:31
Look at cplusplus.com/reference/cstdio/FILE Object type that identifies a stream.
– S.M.
Nov 27 '18 at 5:46
It is an alternative for the dangerous fopen(), which allows anybody else to write to the file at the same time. Also consider fopen_s(), the C11 Annex K alternative that is more likely to be portable.
– Hans Passant
Nov 27 '18 at 17:17