Program monitorujący i rejestrujący zmiany wielkości pliku

0

Cześć,
Program ma za zadanie monitorowania zmian wielkości pliku przez jakiś okres czasu, np przez 60min. Niestety, podczas kompilacji wyskakują mi różne błędy, chociażby taki:

C:\Users\\\\Untitled1.c||In function 'main':|
C:\Users\\\\Untitled1.c|44|warning: implicit declaration of function 'sleep' [-Wimplicit-function-declaration]|
C:\Users\\\\Untitled1.o:Untitled1.c|| undefined reference to `sleep'|
||error: ld returned 1 exit status|

Ogólnie prosiłbym o wszelkie porady, co poprawić, co dodać lub usunąć etc.
Kod programu poniżej. Dzięki!

#include <stdio.h>
#include <time.h> 
#include <unistd.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <fcntl.h>

const int czestotliwosc=1;
const int czas=60;

void Histogram(int dlugosc);

int main (int argc, char* argv[]) 
{
struct stat file_status;
time_t start, current;
int i;
char* nazwa_pliku;

 if (argc>1) 
    nazwa_pliku = argv[1];
 else 
{
            fprintf(stderr,"Podaj nazw'?''?' pliku jako argument wywolania\n");
        return -1;
}

FILE *fp;

  int fd;
  fpos_t pos;
  fd = dup(fileno(stdout));
  freopen("ZAPIS", "w", stdout);

int pierwotny = -1;

time(&start);
do
{
time(&current);
sleep(czestotliwosc); 

if(stat(nazwa_pliku, &file_status) != 0){
perror("stat");
exit(1);
}

int aktualny = file_status.st_size;

if(pierwotny!=aktualny) 
        printf("%d ", aktualny);

pierwotny = file_status.st_size;

} while(difftime(current,start) < czas);  

    fflush(stdout);
    dup2(fd, fileno(stdout));
    close(fd);
    clearerr(stdout);
    fsetpos(stdout, &pos);       

 printf("Rysuje histogram. \nCzas monitorowania wynosi: %d s.\n",czas);

  if((fp = fopen("OUT", "r"))==NULL) 
  {  
    fprintf(stderr,"Cannot open file.\n");
    return -1;
  }

while(!feof(fp))
{ 
   fscanf(fp, "%d", &i);
   if(!feof(fp))
   {
         printf("%d Bajtow \t", i);
         Histogram(i);
   }
}
fclose(fp);

return 0;
}

void Histogram(int dlugosc) 
{
  int j;
        for(j=0; j<dlugosc; j++)        
            printf("_");        
  printf("\n");
}
0

Na pewno popraw formatowanie, bo tej papki nie idzie czytać.

W komunikacie błędu masz windowsowe ścieżki, a kod ma posixowe include'y. To nie przejdzie, zdecyduj się na który system piszesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1