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



Jim,

There are flags named O_SHARE_xxx (where xxx refers to a particular sharing style) that can be used to 'lock' the file. However, since you aren't using them in your example, this code will not tell you if a file is "busy". The way you've coded it it will be perfectly happy to use a file that's in use, or even deleted, by other jobs.

Here are some suggestions:

1) Please consider using O_CCSID instead of O_CODEPAGE.

2) You are opening/creating a new file, but telling it that the code page is 819. Is the data in your RPG program really already in ASCII? Assuming this file contains text, please consider using O_TEXTDATA, O_TEXT_CREAT, and giving it both the program and file CCSID.

3) Instead of hard-coding the file's "mode" (authorities) please consider using O_INHERITMODE to inherit the authorities. It makes it so much easier for an administrator to control authorities when they aren't hard-coded in individual programs!

4) You are giving everyone execute access to the file, which means someone can try to /run/ it. That might make sense if you're writing something like a shell script to be run in QShell or PASE, but it could also be a mistake, so I thought I'd point it out.

-SK



On 6/16/2016 8:21 AM, Jim Franz wrote:
c eval fd = open(%trim(filename):
c O_CREAT+O_WRONLY+O_CODEPAGE:
c S_IRWXO+S_IRWXU+S_IRWXG:
c 819)
c if fd < 0
c callp die('open(): ' + %str(strerror(errno)))
c eval @errflag='Y'
c endif

Where can I find the list of values returned from open() so I can code for
a busy issue?
(This is early 2000's code copied from Scott's samples.

Jim Franz


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.