Fgets is not working on linux/gcc3.2.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxx 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;
}




_______________________________________________
Redhat-devel-list mailing list
Redhat-devel-list@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/redhat-devel-list

[Index of Archives]     [Kernel Newbies]     [Red Hat General]     [Fedora]     [Red Hat Install]     [Linux Kernel Development]     [Yosemite News]

  Powered by Linux