From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/c/io%2Ffeof.html | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 devdocs/c/io%2Ffeof.html (limited to 'devdocs/c/io%2Ffeof.html') diff --git a/devdocs/c/io%2Ffeof.html b/devdocs/c/io%2Ffeof.html new file mode 100644 index 00000000..088f217b --- /dev/null +++ b/devdocs/c/io%2Ffeof.html @@ -0,0 +1,56 @@ +

feof

Defined in header <stdio.h>
int feof( FILE *stream );
+

Checks if the end of the given file stream has been reached.

+

Parameters

+ +
stream - the file stream to check

Return value

nonzero value if the end of the stream has been reached, otherwise ​0​

+

Notes

This function only reports the stream state as reported by the most recent I/O operation, it does not examine the associated data source. For example, if the most recent I/O was a fgetc, which returned the last byte of a file, feof returns zero. The next fgetc fails and changes the stream state to end-of-file. Only then feof returns non-zero.

+

In typical usage, input stream processing stops on any error; feof and ferror are then used to distinguish between different error conditions.

+

Example

#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

References

See also

+ + + +
clears errors
(function)
displays a character string corresponding of the current error to stderr
(function)
checks for a file error
(function)
C++ documentation for feof
+

+ © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
+ https://en.cppreference.com/w/c/io/feof +

+
-- cgit v1.2.3