|
Alan, There is a typo in your declare for o_codepage. Change 8588608 to 8388608 and try it again. You are correct: all errnos map to CPE error messages. And in a quick scan of a few publications I must admit I couldn't find this documented anywhere. Bruce > > Hi Bruce and everyone, > > > I'm not sure what the invalid argument may be, but errno 3021 is > > the same as getting CPE3021 (which is not overly useful). > > CPE3021 may not be useful, but knowing that this is the same as ERRNO 3021 > is! Am I right to assume that all ERRNOs have a corresponding CPExxxx > message? Where do IBM document this support? > > > What you want to do is first create the file with codepage 437; > > close the file; and then re-open the file in text mode. > > This will cause the second open to convert data from your job > > CCSID to/from 437. > > Yes, I am already doing this, my program was cobbled together using a > previous posting to the midrange list by Jon Paris: > http://archive.midrange.com/midrangelarchives/199712/msg01181.html > >Can anybody confirm that my open prototype is correct, because I think there >may be a problem with the codepage? > > * open(path, open flags, mode (opt), codepage (opt)) > * rtn(file descriptor ! -1 = error) > Dopen pr 10i 0 extproc('open') > D * value > D 10i 0 value > D 10u 0 value options(*nopass) > D 10u 0 value options(*nopass) > >It is fine for the first 3 parameters: file name, open flag and mode and >will work if I call with just these (and omit o_codepage from the open >flags). It fails with ERRNO 3021 whenever I try to use the o_codepage flag >and the codepage parameter. > >Here is the rest of the relevant code: > * ASCII codepage value > Dascii s 10i 0 inz(437) > Docp s 10u 0 > * Open Flags > Doflag s 10u 0 > Do_codepage s 10i 0 inz(8588608) > Do_creat s 10i 0 inz(8) > Do_textdata s 10i 0 inz(16777216) > Do_trunc s 10i 0 inz(64) > Do_wronly s 10i 0 inz(2) > * Open Modes > Domode s 10u 0 > Ds_irwxu s 10i 0 inz(448) > Ds_irwxg s 10i 0 inz(56) > Ds_irwxo s 10i 0 inz(7) > > * Open the Stream File > C eval filename='/home/am/ifstest.txt' > C eval filename=%trim(filename) + null > C eval oflag=o_wronly + o_creat + o_trunc + > C o_codepage > C eval omode=s_irwxu + s_irwxg + s_irwxo > C eval ocp=ascii > C eval fd=open(%addr(filename):oflag:omode:ocp) > >Thanks for all your help. > >Alan > +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.