Well I5, also known as iSeries or AS/400, run on i5/OS which is not
Unix but IBM proprietary (called OS/400 previously)

2007/3/29, Ian Darwin <[EMAIL PROTECTED]>:
Henri Gomez wrote:
> While rebuild trunk from mod_jk I got an error on iSeries about
> missing mktemp in iSeries.
>
>    if (!jk_shmem.lockname) {
>        if (shm_lock_reopen) {
>            int i;
>            jk_shmem.fd_lock = -1;
>            mode_t mask = umask(0);
>            for (i = 0; i < 8; i++) {
>                strcpy(flkname, "/tmp/jkshmlock.XXXXXX");
>                if (mktemp(flkname)) {
>                    jk_shmem.fd_lock = open(flkname,
> O_RDWR|O_CREAT|O_TRUNC, 0666);
>                    if (jk_shmem.fd_lock >= 0)
>                        break;
>                }
>            }
>            umask(mask);
>        }
>
>
> How could we avoid this call ?

Wrong question. mktemp has been in UNIX for a dog's age and in POSIX/SUS
for a decade or more. See
http://www.opengroup.org/onlinepubs/007908799/xsh/mktemp.html which is
the 1997 version of the SUS.

The general approach to making C programs portable to broken systems
that are missing libraries is to provide a default version, usually
wrapped in an #ifdef.

IANA(ASF)L but we should be able to incorporate the mktemp
implementation from anything BSD licensed, like OpenBSD, for this purpose.

Ian

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to