|
How do you check for getcwd() errors (get current working directory IFS
procedure)? In the below code, variable errno is not always the same even
though it is a valid current working directory. For example, if working
directory from user profile does not exist, the root directory is used and
a different errno is returned. Both are valid working directories but
errno is nonzero and is different based on root or not. For my working
directory, errno = 1636341396 and for root = 1627406400. Is it always
these two error numbers for valid current working directories? How would I
check for any error if the errno is always nonzero?
Note: I am using getcwd() for cases where a path such as dir/file.ext is
used instead of /dir/file.ext. Leaving off the '/' means to use the
current working directory. This is determined by the home directory on the
user profile and if that directory does not exist then '/' (root) is used.
Any ideas?
* Get current working directory
D getcwd PR * ExtProc('getcwd')
D buf * Value
D size 10U 0 Value
D p_CurDirDS S *
D CurDirDS DS based(p_CurDirDS)
D CurDir 256
D CurDirSize S 10I 0
D p_errno S *
D errno S 10I 0 Based(p_errno)
/free
CurDirSize = %size(CurDirDS);
p_CurDirDS = %alloc(CurDirSize);
clear CurDirDS ;
p_errno = getcwd(p_CurDirDS:%size(CurDirDS));
dealloc p_CurDirDS;
/end-free
Craig Strong
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.