const char *restrict filename,
1) Opens a file indicated by filename
and returns a pointer to the file stream associated with that file. mode
is used to determine the file access mode.
Same as
(1), except that the pointer to the file stream is written to
streamptr
and the following errors are detected at runtime and call the currently installed
constraint handlerfunction:
streamptr
is a null pointerfilename
is a null pointermode
is a null pointerAs with all bounds-checked functions,
fopen_s
is only guaranteed to be available if
__STDC_LIB_EXT1__is defined by the implementation and if the user defines
__STDC_WANT_LIB_EXT1__to the integer constant
1before including
<stdio.h>.
[edit] Parameters filename - file name to associate the file stream to mode - null-terminated character string determining file access mode streamptr - pointer to a pointer where the function stores the result (an out-parameter) [edit] File access flags File accessIf successful, returns a pointer to the new file stream. The stream is fully buffered unless
filename
refers to an interactive device. On error, returns a null pointer.
POSIX requiresthat
errnobe set in this case.
2) If successful, returns zero and a pointer to the new file stream is written to *streamptr. On error, returns a non-zero error code and writes the null pointer to *streamptr (unless streamptr
is a null pointer itself).
The format of filename
is implementation-defined, and does not necessarily refer to a file (e.g. it may be the console or another device accessible though filesystem API). On platforms that support them, filename
may include absolute or relative filesystem path.
#include <stdio.h> #include <stdlib.h> int main(void) { const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL); int is_ok = EXIT_FAILURE; FILE* fp = fopen(fname, "w+"); if (!fp) { perror("File opening failed"); return is_ok; } fputs("Hello, world!\n", fp); rewind(fp); int c; // note: int, not char, required to handle EOF while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop putchar(c); if (ferror(fp)) puts("I/O error when reading"); else if (feof(fp)) { puts("End of file is reached successfully"); is_ok = EXIT_SUCCESS; } fclose(fp); remove(fname); return is_ok; }
Possible output:
Hello, world! End of file is reached successfully[edit] References
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4