/* Copyright 2014 by R. Harmsen. For a full explanation see https://rudhar.com/sfreview/truncexp/en.htm */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> char *logfilename = "logfile"; int main (int argc, char **argv) { long int i; FILE *fp; int ret, charsperline = 60; if ((fp = fopen(logfilename, /* "w" */ "a")) == NULL) { fprintf(stderr, "Could not open %s for writing\n", logfilename); perror(NULL); exit(1); } for (i = 0; i < 600; i++) { if ((ret = fprintf(fp, "Writing a line to the logfile, count = %5ld (calc'd: %5ld), position = %9ld\n", (long)i, (long)(ftell(fp) / charsperline), (long)ftell(fp))) < 0) { fprintf(stderr, "Fprintf failed, ret = %d\n", ret); perror(NULL); } else { charsperline = ret; } } fflush(fp); for (; i < 600 + 100 * 60; i++) { #ifdef DEBUG fprintf(stderr, "Writing a line to the logfile, count = %5ld (calc'd: %5ld), position = %9ld\n", (long)i, (long)(ftell(fp) / charsperline), (long)ftell(fp)); #endif if ((ret = fprintf(fp, "Writing a line to the logfile, count = %5ld (calc'd: %5ld), position = %9ld\n", (long)i, (long)(ftell(fp) / charsperline), (long)ftell(fp))) < 0) { fprintf(stderr, "Fprintf failed, ret = %d\n", ret); perror(NULL); } fflush(fp); sleep(10); } return 0; } /* Copyright 2014 by R. Harmsen. For a full explanation see https://rudhar.com/sfreview/truncexp/en.htm */