/*++ /* NAME /* warn_stat 3 /* SUMMARY /* baby-sit stat() error returns /* SYNOPSIS /* #include <warn_stat.h> /* /* int warn_stat(path, st) /* const char *path; /* struct stat *st; /* /* int warn_lstat(path, st) /* const char *path; /* struct stat *st; /* /* int warn_fstat(fd, st) /* int fd; /* struct stat *st; /* DESCRIPTION /* warn_stat(), warn_fstat() and warn_lstat() wrap the stat(), /* fstat() and lstat() system calls with code that logs a /* diagnosis for common error cases. /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA
/*--*/
/* *When*stat()failswithEOVERFLOW,andtheinterfaceuses32-bitdata *types,suggestthattheprogramberecompiledwithlargerdatatypes.
*/ #ifdef EOVERFLOW if (errno == EOVERFLOW && sizeof(st.st_size) == 4) {
msg_warn("this program was built for 32-bit file handles, " "but some number does not fit in 32 bits");
msg_warn("possible solution: recompile in 64-bit mode, or " "recompile in 32-bit mode with 'large file' support");
} #endif
}
/* warn_stat - stat with warning */
int warn_stat(constchar *path, struct stat * st)
{ int ret;
ret = stat(path, st); if (ret < 0)
diagnose_stat(); return (ret);
}
/* warn_lstat - lstat with warning */
int warn_lstat(constchar *path, struct stat * st)
{ int ret;
ret = lstat(path, st); if (ret < 0)
diagnose_stat(); return (ret);
}
/* warn_fstat - fstat with warning */
int warn_fstat(int fd, struct stat * st)
{ int ret;
ret = fstat(fd, st); if (ret < 0)
diagnose_stat(); return (ret);
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-08-09)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.