Fgets is not working on linux/gcc3.2.1
Ajay Bansal
Ajay_Bansal@infosys.com
Thu Apr 10 06:30:00 GMT 2003
Hi All
Following program is not working on linux. Ideally it should read all
the lines from "/tmp/log.txt" and print them on to the screen. Instead
it breals after it encounters fgets for the first time.
Pleas tell me where I am going wrong!!!! This program is working as
expected on a Solaris machine.
Regards
-Ajay
------------------------------------------------------------------------
-----------
Entries in log.txt
------------------
Line1
Line2
Line3
------------------
Output of the program
---------------------
[ajay@linux1 test]$ ./a.out
Fileno is :3
Error no is : 0
Error is : Success
Line read is :
after fgets break outside while loop
---------------------
#include <iostream>
#include <fstream>
#include <errno.h>
#include <stdlib.h>
using namespace std;
int main()
{
char * pszFileName = "/tmp/log.txt";
char * pszMode = "a+";
char lpsz[4096];
FILE *pFile = fopen(pszFileName, pszMode);
while (!feof(pFile)) {
if (! fgets(lpsz, 4096, pFile))
{
cout<<"Error no is : "<<errno<<endl;
cout<<"Error is : "<<strerror(errno)<<endl;
cout<<"Line read is : "<<lpsz<<endl;
break;
}
cout<<"Line read is : "<<lpsz<<endl;
cout <<" after fgets break inside while loop"<<endl;
}
cout <<" after fgets break outside while loop"<<endl;
return 1;
}
More information about the Gcc-help
mailing list