...
| Code Block | ||||
|---|---|---|---|---|
| ||||
/* sets some internal state in the library */ extern interrno_t setfile(FILE *file); /* performs some action using the file passed earlier */ extern interrno_t usefile(void); static FILE *myFile; errno_t setfile(FILE *file) { if (file && !ferror(file) && !feof(file)) { myFile = file; return 0; } /* error safety: leave myFile unchaned */ return EINVAL-1; } errno_t usefile(void) { if (!myFile) return -1; /* perform other checks if needed, return * error condition */ /* perform some action here */ return 0; } |
...