You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
579 B
39 lines
579 B
6 months ago
|
#include <err.h>
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
int main(int argc, char *argv[])
|
||
|
{
|
||
|
if (argc < 2) {
|
||
|
errx(EXIT_FAILURE, "Missing filename argument\n");
|
||
|
}
|
||
|
|
||
|
int init = 0;
|
||
|
FILE *fp = fopen(argv[1], "r+");
|
||
|
|
||
|
if (!fp) {
|
||
|
fp = fopen(argv[1], "w+");
|
||
|
init = 1;
|
||
|
}
|
||
|
|
||
|
if (!fp) {
|
||
|
err(EXIT_FAILURE, "Failed to open file\n");
|
||
|
}
|
||
|
|
||
|
int counter = 0;
|
||
|
if (!init) {
|
||
|
fread(&counter, sizeof(int), 1, fp);
|
||
|
}
|
||
|
|
||
|
counter++;
|
||
|
|
||
|
rewind(fp);
|
||
|
|
||
|
size_t wrote = fwrite(&counter, sizeof(int), 1, fp);
|
||
|
fprintf(stderr, "Wrote %d (%lu bytes)\n", counter, wrote);
|
||
|
|
||
|
fclose(fp);
|
||
|
|
||
|
return 0;
|
||
|
}
|