This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Fgets is not working on linux/gcc3.2.1
- From: "Ajay Bansal" <Ajay_Bansal at infosys dot com>
- To: <redhat-devel-list at redhat dot com>,<gcc-help at gcc dot gnu dot org>
- Date: Thu, 10 Apr 2003 12:01:24 +0530
- Subject: Fgets is not working on linux/gcc3.2.1
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 at 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;
}