Re: Printing from ILE/C program running in QUSRWRK

Scott Klement <[email protected]>
Newsgroups gmane.comp.lang.as400.c
Message-ID <[email protected]>
Hi Jevgeni,

Is it possible that you are using IFS mode,  for example, with 
SYSIFCOPT(*IFSIO) on the compile command?  This error looks like the one 
you get when you specify an unknown IFS path -- and, yeah, *LIBL/EQRPT 
would certainly not be a valid IFS path.

The fopen() API and friends (fwrite, fputs, fgets, fclose, etc, etc) are 
designed to access the traditional library file system by default, but 
with SYSIFCOPT(*IFSIO) -- or similar options -- they switch to using IFS 
names.  IFS names don't allow library list.

Have you considered using _Ropen() and friends (record I/O functions) 
for a spooled file? It's been an awfully long time since I've generated 
a report from C, but I'm pretty sure that this is what I used. 
Something to think about...

-SK


On 10/13/2015 3:11 AM, Jevgeni Astanovski wrote:
> Good morning, colleagues
> It should be very simple, but looks like I am missing something
> fundamental..
>
> When I need to generate printed output from my C program, I write something
> like:
>
> ....
> FILE *LogFile ;
> char szTemp[133] ;
>
> LogFile = fopen("*LIBL/EQRPT", "w") ;   // EQRPT - generic PRTF
> sprintf(szTemp, "Printed output\n") ;
> fwrite (szTemp, strlen(szTemp), 1, LogFile) ;
> fclose(LogFile) ;
>
> ....
>
> works fine in batch and interactive programs. Produces a spool file in an
> output queue as expected.
>
> However, when I place the same code in a program that runs in QUSRWRK (job
> QZRCSRVS - a remote program call),
> LogFile is *NULL after fopen and errno is 3025: "No such path or directory"
> produces strerror.
> I run the job under debugger using strsrvjob to check if EQRPT is indeed in
> the path - I see that it is.
>
> Can someone explain what am I doing wrong?
>
> Thanks in advance,
> Jevgeni.
>

-- 
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list
To post a message email: C400-L-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at http://archive.midrange.com/c400-l.
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.