Comma isn't a valid delimitor in an expression. Did you mean 'open' path', O_rdwr+O_creat+O_trunc, 660' ?
-- 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 4:02 AM To: [email protected] Subject: Re: Why is my second Rexx SYSCALLS read failing? Once again wrong, my e-Mail client is fooling me. Next try: '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 Am 11.09.2022 um 10:01 schrieb Bernd Oppolzer: > sorry for the strange formatting of the example code: > > should be > > '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 > > Kind regards > > Bernd > > > Am 11.09.2022 um 09:57 schrieb Bernd Oppolzer: >> 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 ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
