46 lines
842 B
C
46 lines
842 B
C
|
#include <errno.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
#include <string.h>
|
||
|
|
||
|
int main(int argc, char *argv[])
|
||
|
{
|
||
|
int ret = EXIT_FAILURE;
|
||
|
static const char path[] = "myfile.txt";
|
||
|
FILE *const f = fopen(path, "rb");
|
||
|
|
||
|
if (!f)
|
||
|
{
|
||
|
fprintf(stderr, "%s: fopen(3) %s: %s\n", __func__, path,
|
||
|
strerror(errno));
|
||
|
goto end;
|
||
|
}
|
||
|
|
||
|
for (;;)
|
||
|
{
|
||
|
char c;
|
||
|
|
||
|
if (fread(&c, sizeof c, 1, f))
|
||
|
printf("(%#hhx)\n", c);
|
||
|
else if (ferror(f))
|
||
|
{
|
||
|
fprintf(stderr, "%s: ferror\n", __func__);
|
||
|
goto end;
|
||
|
}
|
||
|
else if (feof(f))
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
ret = EXIT_SUCCESS;
|
||
|
|
||
|
end:
|
||
|
|
||
|
if (f && fclose(f))
|
||
|
{
|
||
|
fprintf(stderr, "%s: fclose(3): %s\n", __func__, strerror(errno));
|
||
|
ret = EXIT_FAILURE;
|
||
|
}
|
||
|
|
||
|
return ret;
|
||
|
}
|