ноут на гарантии
#include <stdio.h>
#include <stdlib.h>
#ifdef _WIN32
#include <sys\stat.h>
#define STAT(fname, buf) _stat(fname, buf)
#else
#include <sys/stat.h>
#define STAT(fname, buf) stat(fname, buf)
#endif
int main()
{
#ifdef _WIN32
char* fname = "C:\\c\\file.txt";
struct _stat fstat;
#else
char* fname = "file.txt";
struct stat fstat;
#endif
FILE* fp = fopen(fname, "r");
if(NULL == fp)
{
printf("Error: can't open file: %s", fname);
return -1;
}
if(0 == STAT( fp, &fstat ))
{
printf("...", fname);
fclose(fname);
return -1;
}
char* buf = (char*)calloc(fstat.st_size + 1, sizeof(char));
while(fgets(buf, fstat.st_size, fp))
{
printf("%s", buf);
memset(buf,0, strlen(buf) + 1);
}
close(fp);
free(buf);
return 0;
}