Fgets is not working on linux/gcc3.2.1

"Ajay Bansal" <[email protected]>
Newsgroups gmane.comp.gcc.help,gmane.linux.redhat.devel
Message-ID <[email protected]>
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;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.