36 lines
753 B
C
36 lines
753 B
C
#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;
|
|
}
|