#include <debug.h> #include <unistd.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> int main(int argc, char **argv) { char *fname; int fd; char magic[4]; argc--, argv++; FAILIF(argc != 1, "Expecting a file name!\n"); fname = *argv; fd = open(fname, O_RDONLY); FAILIF(fd < 0, "Error opening %s for reading: %s (%d)!\n", fname, strerror(errno), errno); FAILIF(4 != read(fd, magic, 4), "Could not read first 4 bytes from %s: %s (%d)!\n", fname, strerror(errno), errno); if (magic[0] != 0x7f) return 1; if (magic[1] != 'E') return 1; if (magic[2] != 'L') return 1; if (magic[3] != 'F') return 1; return 0; }