[TUHS] MacOS X is Unix (tm)

Joerg Schilling schily at schily.net
Mon Jan 2 21:31:47 AEST 2017


David <david at kdbarto.org> wrote:

> MacOS X is a certified Unix (tm) OS. Not Unix-Like.

Given that MacOS X is not POSIX compliant, I would call it a UNIX-alike.

Note that passing the certification tests unfortunately does not grant 
POSIX compliance :-(

Try e.g. this program on Mac OS X:

#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <stdio.h>
/*
 * Non-standard compliant platforms may need 
 * #include <signal.h> or something similar
 * in addition to the include files above.
 */

int
main()
{
        siginfo_t       si;
        pid_t   pid;
        int     ret;

        if ((pid = fork()) < 0)
                exit(1);
        if (pid == 0) {
                _exit(1234567890);
        }
        ret = waitid(P_PID, pid, &si, WEXITED);
        printf("ret: %d si_pid: %ld si_status: %d si_code: %d\n",
                ret,
                (long) si.si_pid, si.si_status, si.si_code);
        if (pid != si.si_pid)
                printf("si_pid in struct siginfo should be %ld but is %ld\n",
                        (long) pid, (long) si.si_pid);
        if (si.si_status != 1234567890)
                printf("si_status in struct siginfo should be %d (0x%x) but is %d (0x%x)\n",
                        1234567890, 1234567890, si.si_status, si.si_status);
        if (si.si_code != CLD_EXITED)
		printf("si_code in struct siginfo should be %d (0x%x) but is %d (0x%x)\n",
			CLD_EXITED,  CLD_EXITED, si.si_code, si.si_code);
        if (CLD_EXITED != 1)
                printf("CLD_EXITED is %d on this platform\n", CLD_EXITED);
        return (0);
}

Jörg

-- 
 EMail:joerg at schily.net                  (home) Jörg Schilling D-13353 Berlin
       joerg.schilling at fokus.fraunhofer.de (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.org/private/ http://sourceforge.net/projects/schilytools/files/



More information about the TUHS mailing list