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.