What I see is multiple lines, with a new line after the comma, making the comma a continuation character. For that to be valid on a single line you must remove the comma and insert semicolons to separate statements.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List [[email protected]] on behalf of Bernd Oppolzer [[email protected]] Sent: Sunday, September 11, 2022 3:57 AM To: [email protected] Subject: Re: Why is my second Rexx SYSCALLS read failing? Why is there suddenly the variable RC used to test the outcome of OPEN? In the examples in the IBM doc I see: |'open' path, O_rdwr+O_creat+O_trunc, 660 if retval=-1 then do say 'file not opened, error codes' errno errnojr return end fd=retval |that is: the returned fd and the code to test the success of OPEN is both in the variable retval, not RC. And: it would be better to assign the value of retval to fd after the test for success. Kind regards Bernd Am 11.09.2022 um 01:45 schrieb Charles Mills: > I am working on a Rexx program that reads one or more UNIX files. (And > please, don't beat me up for Rexx; we can have the "superiority of Python" > discussion another day.) > > The logic works for the first file, but if there is a second file the read > fails with a -21, which I interpret as "bad fd." (Am I wrong about that?) > > Here are the read and open routines. The read routine gets called with the > file name. It's getting that right because the first file works (and the > second file works if it is first). There is no error printed by FileOpen. I > can see from the Print at the start of ReadOneFile that the filename is > correct. How could the fd be bad if the open succeeds? > > ReadOneLogFile: > If IsVerbose Then Call Print "ReadOneLogFile:" Arg(1) > > ADDRESS SYSCALL > Call FileOpen Arg(1) > > Do Forever > "read" Filefd "record" LogFileRecLen > If Length(record) <> LogFileRecLen Then Leave > > /* snip */ > > End /* Read records forever */ > > "close" Filefd > > Return > > FileOpen: > /* Open the file */ > "open" Arg(1) O_RDONLY > Filefd = retval > if RC = -1 Then Do > Call Print "Error from Log File open. RC =" RC errno errnojr > Signal EndProgram > End /* RC <> 0 */ > Return > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
