Re: Fgets is not working on linux/gcc3.2.1

LLeweLLyn Reese <[email protected]>
Newsgroups gmane.comp.gcc.help,gmane.linux.redhat.devel
Message-ID <[email protected]>
"Ajay Bansal" <[email protected]> writes:

> 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);

      fseek(pFile,0,SEEK_BEG);

will fix your problem. On solaris, where a file opened with a is
    opened at the begining, the above will have no effect. On linux,
    where the file is opened at the end, the above will seek to the
    begining. 


> 
>     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.