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