× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: RE: Unix IFS Open API
  • From: "Alan Moulsdale" <alan.moulsdale@xxxxxxxxxx>
  • Date: Tue, 11 Apr 2000 13:27:49 +0100
  • Importance: Normal

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

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.