|
hey all,
here is a very simple program, stripped down to just the basics:
H DFTACTGRP(*NO) ACTGRP(*NEW)
H BNDDIR('QC2LE')
H OPTION(*SRCSTMT: *NODEBUGIO: *SHOWCPY)
D waFileName S 100A
D count S 10i 0
D mode S 5a
D errmsg S 256A
D wiHandle S *
D Buffer DS
D saBuffer 512A
D fOpen PR * ExtProc('_C_IFS_fopen')
D fileName * Value Options(*STRING)
D fmode * Value Options(*STRING)
D fgets PR * ExtProc('_C_IFS_fgets')
D text * Value options(*string)
D length 10I 0 Value
D fd * Const
D geterror PR 10I 0
D peErrMsg 256A options(*nopass)
c eval waFileName =
c '/http/aloha/pmix/PMIX2003060401.txt'
c eval mode = 'r' + x'00'
C eval wiHandle = fOpen(%trim(waFileName):
c %addr(mode))
C callp geterror(errmsg)
C dow fgets(%addr(buffer):%size(buffer):
C wihandle) <> *null
c eval count = count + 1
C enddo
C callp geterror(errmsg)
c eval *inlr = *on
C return
P geterror B
D geterror PI 10I 0
D peErrMsg 256A options(*nopass)
D geterrno PR * extproc('__errno')
D strerror PR * extproc('strerror')
D errno 10I 0 value
D p_error S * INZ(*NULL)
D wwError S 10I 0 based(p_Error)
D p_errmsg S *
D wwErrMsg S 256A based(p_errmsg)
D wwLen S 10I 0
C eval p_error = geterrno
c if %parms >= 1
c eval p_errmsg = strerror(wwError)
c x'00' scan wwErrMsg wwLen
c eval peErrMsg = %subst(wwErrMsg:1:wwLen)
c endif
c return wwError
p E
This will compile in v5r1
after the open, I have a valid pointer in wiHandle, and the geterrno
returns "there is no error".
I do the fgets(), and it returns *null, and the following geterrno returns:
"Invalid Descriptor"
I've looked and looked, I've tried a hundred different things, but I can't
seem to get this one figured out.
Thanks,
Rick
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.