|
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-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.