• I can't find Stevens ourhdr.h

    From Peter Percival@21:1/5 to All on Thu Jul 5 14:50:37 2018
    XPost: alt.comp.lang.c

    W. Richard Stevens' /Advanced programming in the Unix environment/
    features a file ourhdr.h. I have downloaded the source code for the
    book from http://www.kohala.com/start/apue.tar.Z. There are a number of
    files called ourhdr.h but they all seem to be empty.

    I downloaded and expanded apue.tar.Z on a Windows 10 computer using
    WinZip with a view to transferring them, via a USB stick, to a Raspberry Pi.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?8J+YiSBHb29kIEd1eSDwn5iJ?@21:1/5 to Peter Percival on Thu Jul 5 16:36:10 2018
    XPost: alt.comp.lang.c

    This is a multi-part message in MIME format.
    On 05/07/2018 14:50, Peter Percival wrote:
    W. Richard Stevens' /Advanced programming in the Unix environment/
    features a file ourhdr.h. I have downloaded the source code for the
    book from http://www.kohala.com/start/apue.tar.Z. There are a number
    of files called ourhdr.h but they all seem to be empty.

    I downloaded and expanded apue.tar.Z on a Windows 10 computer using
    WinZip with a view to transferring them, via a USB stick, to a
    Raspberry Pi.

    Put this code in the empty file or files:

    /* Our own header, to be included *after* all standard system headers */

    #ifndef __ourhdr_h
    #define __ourhdr_h

    #include <sys/types.h> /* required for some of our prototypes */ #include <stdio.h> /* for convenience */
    #include <stdlib.h> /* for convenience */
    #include <string.h> /* for convenience */
    #include <unistd.h> /* for convenience */

    #ifdef notdef /* delete for systems that don't define this
    (SunOS 4.x) */
    typedef int ssize_t;
    #endif

    #ifdef notdef /* delete if <stdlib.h> doesn't define these for
    getopt() */
    extern char *optarg;
    extern int optind, opterr, optopt;
    #endif

    #ifdef notdef /* delete if send() not supported (DEC OSF/1) */
    #define send(a,b,c,d) sendto((a), (b), (c), (d), (struct
    sockaddr *) NULL, 0)
    #endif

    #define MAXLINE 4096 /* max line length */

    #define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
    /* default file access permissions for new files */ #define DIR_MODE (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)
    /* default permissions for new directories */

    typedef void Sigfunc(int); /* for signal handlers */

    /* 4.3BSD Reno <signal.h> doesn't define SIG_ERR */
    #if defined(SIG_IGN) && !defined(SIG_ERR)
    #define SIG_ERR ((Sigfunc *)-1)
    #endif

    #define min(a,b) ((a) < (b) ? (a) : (b))
    #define max(a,b) ((a) > (b) ? (a) : (b))

    /* prototypes for our own functions */
    char *path_alloc(int *); /* {Prog pathalloc} */
    int open_max(void); /* {Prog openmax} */
    void clr_fl(int, int); /* {Prog setfl} */
    void set_fl(int, int); /* {Prog setfl} */
    void pr_exit(int); /* {Prog prexit} */
    void pr_mask(const char *); /* {Prog prmask} */
    Sigfunc *signal_intr(int, Sigfunc *);/* {Prog signal_intr_function} */

    int tty_cbreak(int); /* {Prog raw} */
    int tty_raw(int); /* {Prog raw} */
    int tty_reset(int); /* {Prog raw} */
    void tty_atexit(void); /* {Prog raw} */
    #ifdef ECHO /* only if <termios.h> has been included */
    struct termios *tty_termios(void); /* {Prog raw} */
    #endif

    void sleep_us(unsigned int); /* {Ex sleepus} */
    ssize_t readn(int, void *, size_t);/* {Prog readn} */
    ssize_t writen(int, const void *, size_t);/* {Prog writen} */
    int daemon_init(void); /* {Prog daemoninit} */

    int s_pipe(int *); /* {Progs svr4_spipe
    bsd_spipe} */
    int recv_fd(int, ssize_t (*func)(int, const void *, size_t));
    /* {Progs recvfd_svr4 recvfd_43bsd} */ int send_fd(int, int); /* {Progs sendfd_svr4
    sendfd_43bsd} */
    int send_err(int, int, const char *);/* {Prog senderr} */
    int serv_listen(const char *); /* {Progs servlisten_svr4 servlisten_44bsd} */
    int serv_accept(int, uid_t *); /* {Progs servaccept_svr4 servaccept_44bsd} */
    int cli_conn(const char *); /* {Progs cliconn_svr4
    cliconn_44bsd} */
    int buf_args(char *, int (*func)(int, char **));
    /* {Prog bufargs} */

    int ptym_open(char *); /* {Progs ptyopen_svr4 ptyopen_44bsd} */
    int ptys_open(int, char *); /* {Progs ptyopen_svr4
    ptyopen_44bsd} */
    #ifdef TIOCGWINSZ
    pid_t pty_fork(int *, char *, const struct termios *,
    const struct winsize *); /* {Prog ptyfork} */
    #endif

    int lock_reg(int, int, int, off_t, int, off_t);
    /* {Prog lockreg} */
    #define read_lock(fd, offset, whence, len) \
    lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
    #define readw_lock(fd, offset, whence, len) \
    lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
    #define write_lock(fd, offset, whence, len) \
    lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
    #define writew_lock(fd, offset, whence, len) \
    lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
    #define un_lock(fd, offset, whence, len) \
    lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)

    pid_t lock_test(int, int, off_t, int, off_t);
    /* {Prog locktest} */

    #define is_readlock(fd, offset, whence, len) \
    lock_test(fd, F_RDLCK, offset, whence, len)
    #define is_writelock(fd, offset, whence, len) \
    lock_test(fd, F_WRLCK, offset, whence, len)

    void err_dump(const char *, ...); /* {App misc_source} */
    void err_msg(const char *, ...);
    void err_quit(const char *, ...);
    void err_ret(const char *, ...);
    void err_sys(const char *, ...);

    void log_msg(const char *, ...); /* {App misc_source} */
    void log_open(const char *, int, int);
    void log_quit(const char *, ...);
    void log_ret(const char *, ...);
    void log_sys(const char *, ...);

    void TELL_WAIT(void); /* parent/child from {Sec
    race_conditions} */
    void TELL_PARENT(pid_t);
    void TELL_CHILD(pid_t);
    void WAIT_PARENT(void);
    void WAIT_CHILD(void);

    #endif /* __ourhdr_h */


    Source: <http://www.yendor.com/programming/unix/apue/apue.html>

    --
    With over 950 million devices now running Windows 10, customer
    satisfaction is higher than any previous version of windows.

    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    </head>
    <body bgcolor="#FCFBE3" text="#000000">
    <div class="moz-cite-prefix">On 05/07/2018 14:50, Peter Percival
    wrote:<br>
    </div>
    <blockquote cite="mid:phl7ne$6lm$1@news.albasani.net" type="cite">W.
    Richard Stevens' /Advanced programming in the Unix environment/
    features a file ourhdr.h.  I have downloaded the source code for
    the book from <a class="moz-txt-link-freetext" href="http://www.kohala.com/start/apue.tar.Z">http://www.kohala.com/start/apue.tar.Z</a>.  There are a
    number of files called ourhdr.h but they all seem to be empty.
    <br>
    <br>
    I downloaded and expanded apue.tar.Z on a Windows 10 computer
    using WinZip with a view to transferring them, via a USB stick, to
    a Raspberry Pi.
    <br>
    </blockquote>
    <br>
    Put this code in the empty file or files:<br>
    <br>
    <blockquote type="cite">/* Our own header, to be included *after*
    all standard system headers */<br>
    <br>
    #ifndef    __ourhdr_h<br>
    #define    __ourhdr_h<br>
    <br>
    #include    &lt;sys/types.h&gt;    /* required for some of our
    prototypes */<br>
    #include    &lt;stdio.h&gt;        /* for convenience */<br>
    #include    &lt;stdlib.h&gt;        /* for convenience */<br>
    #include    &lt;string.h&gt;        /* for convenience */<br>
    #include    &lt;unistd.h&gt;        /* for convenience */<br>
    <br>
    #ifdef    notdef    /* delete for systems that don't define this
    (SunOS 4.x) */<br>
    typedef    int    ssize_t;<br>
    #endif<br>
    <br>
    #ifdef    notdef    /* delete if &lt;stdlib.h&gt; doesn't define
    these for getopt() */<br>
    extern char    *optarg;<br>
    extern int    optind, opterr, optopt;<br>
    #endif<br>
    <br>
    #ifdef    notdef    /* delete if send() not supported (DEC OSF/1)
    */<br>
    #define    send(a,b,c,d)    sendto((a), (b), (c), (d), (struct
    sockaddr *) NULL, 0)<br>
    #endif<br>
    <br>
    #define    MAXLINE    4096            /* max line length */<br>
    <br>
    #define    FILE_MODE    (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)<br>
                        /* default file access permissions for new
    files */<br>
    #define    DIR_MODE    (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)<br>
                        /* default permissions for new directories */<br>
    <br>
    typedef    void    Sigfunc(int);    /* for signal handlers */<br>
    <br>
                        /* 4.3BSD Reno &lt;signal.h&gt; doesn't define
    SIG_ERR */<br>
    #if    defined(SIG_IGN) &amp;&amp; !defined(SIG_ERR)<br>
    #define    SIG_ERR    ((Sigfunc *)-1)<br>
    #endif<br>
    <br>
    #define    min(a,b)    ((a) &lt; (b) ? (a) : (b))<br>
    #define    max(a,b)    ((a) &gt; (b) ? (a) : (b))<br>
    <br>
                        /* prototypes for our own functions */<br>
    char    *path_alloc(int *);            /* {Prog pathalloc} */<br>
    int         open_max(void);            /* {Prog openmax} */<br>
    void     clr_fl(int, int);            /* {Prog setfl} */<br>
    void     set_fl(int, int);            /* {Prog setfl} */<br>
    void     pr_exit(int);                /* {Prog prexit} */<br>
    void     pr_mask(const char *);        /* {Prog prmask} */<br>
    Sigfunc    *signal_intr(int, Sigfunc *);/* {Prog
    signal_intr_function} */<br>
    <br>
    int         tty_cbreak(int);            /* {Prog raw} */<br>
    int         tty_raw(int);                /* {Prog raw} */<br>
    int         tty_reset(int);            /* {Prog raw} */<br>
    void     tty_atexit(void);            /* {Prog raw} */<br>
    #ifdef    ECHO    /* only if &lt;termios.h&gt; has been included
    */<br>
    struct termios    *tty_termios(void);    /* {Prog raw} */<br>
    #endif<br>
    <br>
    void     sleep_us(unsigned int);    /* {Ex sleepus} */<br>
    ssize_t     readn(int, void *, size_t);/* {Prog readn} */<br>
    ssize_t     writen(int, const void *, size_t);/* {Prog writen} */<br>
    int         daemon_init(void);            /* {Prog daemoninit} */<br>
    <br>
    int         s_pipe(int *);                /* {Progs svr4_spipe
    bsd_spipe} */<br>
    int         recv_fd(int, ssize_t (*func)(int, const void *,
    size_t));<br>
                                        /* {Progs recvfd_svr4
    recvfd_43bsd} */<br>
    int         send_fd(int, int);            /* {Progs sendfd_svr4
    sendfd_43bsd} */<br>
    int         send_err(int, int, const char *);/* {Prog senderr} */<br>
    int         serv_listen(const char *);    /* {Progs
    servlisten_svr4 servlisten_44bsd} */<br>
    int         serv_accept(int, uid_t *);    /* {Progs
    servaccept_svr4 servaccept_44bsd} */<br>
    int         cli_conn(const char *);    /* {Progs cliconn_svr4
    cliconn_44bsd} */<br>
    int         buf_args(char *, int (*func)(int, char **));<br>
                                        /* {Prog bufargs} */<br>
    <br>
    int         ptym_open(char *);            /* {Progs ptyopen_svr4
    ptyopen_44bsd} */<br>
    int         ptys_open(int, char *);    /* {Progs ptyopen_svr4
    ptyopen_44bsd} */<br>
    #ifdef    TIOCGWINSZ<br>
    pid_t     pty_fork(int *, char *, const struct termios *,<br>
                      const struct winsize *);    /* {Prog ptyfork} */<br>
    #endif<br>
    <br>
    int        lock_reg(int, int, int, off_t, int, off_t);<br>
                                        /* {Prog lockreg} */<br>
    #define    read_lock(fd, offset, whence, len) \<br>
                lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)<br>
    #define    readw_lock(fd, offset, whence, len) \<br>
                lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)<br>
    #define    write_lock(fd, offset, whence, len) \<br>
                lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)<br>
    #define    writew_lock(fd, offset, whence, len) \<br>
                lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)<br>
    #define    un_lock(fd, offset, whence, len) \<br>
                lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)<br>
    <br>
    pid_t    lock_test(int, int, off_t, int, off_t);<br>
                                        /* {Prog locktest} */<br>
    <br>
    #define    is_readlock(fd, offset, whence, len) \<br>
                lock_test(fd, F_RDLCK, offset, whence, len)<br>
    #define    is_writelock(fd, offset, whence, len) \<br>
                lock_test(fd, F_WRLCK, offset, whence, len)<br>
    <br>
    void    err_dump(const char *, ...);    /* {App misc_source} */<br>
    void    err_msg(const char *, ...);<br>
    void    err_quit(const char *, ...);<br>
    void    err_ret(const char *, ...);<br>
    void    err_sys(const char *, ...);<br>
    <br>
    void    log_msg(const char *, ...);        /* {App misc_source} */<br>
    void    log_open(const char *, int, int);<br>
    void    log_quit(const char *, ...);<br>
    void    log_ret(const char *, ...);<br>
    void    log_sys(const char *, ...);<br>
    <br>
    void    TELL_WAIT(void);        /* parent/child from {Sec
    race_conditions} */<br>
    void    TELL_PARENT(pid_t);<br>
    void    TELL_CHILD(pid_t);<br>
    void    WAIT_PARENT(void);<br>
    void    WAIT_CHILD(void);<br>
    <br>
    #endif    /* __ourhdr_h */<br>
    </blockquote>
    <br>
    <br>
    Source:
    <a class="moz-txt-link-rfc2396E" href="http://www.yendor.com/programming/unix/apue/apue.html">&lt;http://www.yendor.com/programming/unix/apue/apue.html&gt;</a><br>
    <br>
    <div class="moz-signature">-- <br>
    <div class="moz-signature">
    <div style="width: 340px;height: 290px; background-color: blue;
    color: yellow;font-weight: bolder; font-size:200%; text-align:
    center; margin: 30px 5px 30px 5px;">With over 950 million
    devices now running Windows 10, customer satisfaction is
    higher than any previous version of windows.</div>
    </div>
    </div>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Peter Percival@21:1/5 to All on Thu Jul 5 18:44:44 2018
    XPost: alt.comp.lang.c

    😉 Good Guy 😉 wrote:
    On 05/07/2018 14:50, Peter Percival wrote:
    W. Richard Stevens' /Advanced programming in the Unix environment/
    features a file ourhdr.h.  I have downloaded the source code for the
    book from http://www.kohala.com/start/apue.tar.Z.  There are a number
    of files called ourhdr.h but they all seem to be empty.

    I downloaded and expanded apue.tar.Z on a Windows 10 computer using
    WinZip with a view to transferring them, via a USB stick, to a
    Raspberry Pi.

    Put this code in the empty file or files:

    Thank you.

    /* Our own header, to be included *after* all standard system headers */

    #ifndef    __ourhdr_h
    #define    __ourhdr_h

    #include    <sys/types.h>    /* required for some of our prototypes */ >> #include    <stdio.h>        /* for convenience */
    #include    <stdlib.h>        /* for convenience */
    #include    <string.h>        /* for convenience */
    #include    <unistd.h>        /* for convenience */

    #ifdef    notdef    /* delete for systems that don't define this
    (SunOS 4.x) */
    typedef    int    ssize_t;
    #endif

    #ifdef    notdef    /* delete if <stdlib.h> doesn't define these for >> getopt() */
    extern char    *optarg;
    extern int    optind, opterr, optopt;
    #endif

    #ifdef    notdef    /* delete if send() not supported (DEC OSF/1) */ >> #define    send(a,b,c,d)    sendto((a), (b), (c), (d), (struct
    sockaddr *) NULL, 0)
    #endif

    #define    MAXLINE    4096            /* max line length */ >>
    #define    FILE_MODE    (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
                        /* default file access permissions for new files */
    #define    DIR_MODE    (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)
                        /* default permissions for new directories */

    typedef    void    Sigfunc(int);    /* for signal handlers */

                        /* 4.3BSD Reno <signal.h> doesn't define SIG_ERR */
    #if    defined(SIG_IGN) && !defined(SIG_ERR)
    #define    SIG_ERR    ((Sigfunc *)-1)
    #endif

    #define    min(a,b)    ((a) < (b) ? (a) : (b))
    #define    max(a,b)    ((a) > (b) ? (a) : (b))

                        /* prototypes for our own functions */
    char    *path_alloc(int *);            /* {Prog pathalloc} */
    int         open_max(void);            /* {Prog openmax} */ >> void     clr_fl(int, int);            /* {Prog setfl} */
    void     set_fl(int, int);            /* {Prog setfl} */
    void     pr_exit(int);                /* {Prog prexit} */
    void     pr_mask(const char *);        /* {Prog prmask} */
    Sigfunc    *signal_intr(int, Sigfunc *);/* {Prog signal_intr_function} */ >>
    int         tty_cbreak(int);            /* {Prog raw} */
    int         tty_raw(int);                /* {Prog raw} */ >> int         tty_reset(int);            /* {Prog raw} */
    void     tty_atexit(void);            /* {Prog raw} */
    #ifdef    ECHO    /* only if <termios.h> has been included */
    struct termios    *tty_termios(void);    /* {Prog raw} */
    #endif

    void     sleep_us(unsigned int);    /* {Ex sleepus} */
    ssize_t     readn(int, void *, size_t);/* {Prog readn} */
    ssize_t     writen(int, const void *, size_t);/* {Prog writen} */
    int         daemon_init(void);            /* {Prog daemoninit} */

    int         s_pipe(int *);                /* {Progs svr4_spipe
    bsd_spipe} */
    int         recv_fd(int, ssize_t (*func)(int, const void *, size_t)); >>                                     /* {Progs recvfd_svr4 recvfd_43bsd} */
    int         send_fd(int, int);            /* {Progs sendfd_svr4
    sendfd_43bsd} */
    int         send_err(int, int, const char *);/* {Prog senderr} */
    int         serv_listen(const char *);    /* {Progs servlisten_svr4 >> servlisten_44bsd} */
    int         serv_accept(int, uid_t *);    /* {Progs servaccept_svr4 >> servaccept_44bsd} */
    int         cli_conn(const char *);    /* {Progs cliconn_svr4
    cliconn_44bsd} */
    int         buf_args(char *, int (*func)(int, char **));
                                        /* {Prog bufargs} */

    int         ptym_open(char *);            /* {Progs ptyopen_svr4
    ptyopen_44bsd} */
    int         ptys_open(int, char *);    /* {Progs ptyopen_svr4
    ptyopen_44bsd} */
    #ifdef    TIOCGWINSZ
    pid_t     pty_fork(int *, char *, const struct termios *,
                      const struct winsize *);    /* {Prog ptyfork} */
    #endif

    int        lock_reg(int, int, int, off_t, int, off_t);
                                        /* {Prog lockreg} */
    #define    read_lock(fd, offset, whence, len) \
                lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
    #define    readw_lock(fd, offset, whence, len) \
                lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
    #define    write_lock(fd, offset, whence, len) \
                lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
    #define    writew_lock(fd, offset, whence, len) \
                lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
    #define    un_lock(fd, offset, whence, len) \
                lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)

    pid_t    lock_test(int, int, off_t, int, off_t);
                                        /* {Prog locktest} */

    #define    is_readlock(fd, offset, whence, len) \
                lock_test(fd, F_RDLCK, offset, whence, len)
    #define    is_writelock(fd, offset, whence, len) \
                lock_test(fd, F_WRLCK, offset, whence, len)

    void    err_dump(const char *, ...);    /* {App misc_source} */
    void    err_msg(const char *, ...);
    void    err_quit(const char *, ...);
    void    err_ret(const char *, ...);
    void    err_sys(const char *, ...);

    void    log_msg(const char *, ...);        /* {App misc_source} */ >> void    log_open(const char *, int, int);
    void    log_quit(const char *, ...);
    void    log_ret(const char *, ...);
    void    log_sys(const char *, ...);

    void    TELL_WAIT(void);        /* parent/child from {Sec
    race_conditions} */
    void    TELL_PARENT(pid_t);
    void    TELL_CHILD(pid_t);
    void    WAIT_PARENT(void);
    void    WAIT_CHILD(void);

    #endif    /* __ourhdr_h */


    Source: <http://www.yendor.com/programming/unix/apue/apue.html>

    --
    With over 950 million devices now running Windows 10, customer
    satisfaction is higher than any previous version of windows.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Kaasen@21:1/5 to Peter Percival on Tue Jul 17 14:32:40 2018
    XPost: alt.comp.lang.c

    Hello!

    In comp.unix.misc Peter Percival <peterxpercival@hotmail.com> wrote:
    W. Richard Stevens' /Advanced programming in the Unix environment/
    features a file ourhdr.h. I have downloaded the source code for the
    book from http://www.kohala.com/start/apue.tar.Z. There are a number of files called ourhdr.h but they all seem to be empty.

    I downloaded and expanded apue.tar.Z on a Windows 10 computer using
    WinZip with a view to transferring them, via a USB stick, to a Raspberry Pi.

    You should extract the files on Unix/Raspbian, as they understand links.
    "zcat apue.tar.Z |tar tvf - |grep link\ to" gives:

    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/call/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/call/loop.poll.c link to apue/call/loop.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/calld/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/datafiles/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/db.lock.fine/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/environ/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/file/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/ipc/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/lib.sun/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.44/bufargs.c link to apue/lib.sun/bufargs.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/lib.44/clrfl.c link to apue/lib.sun/clrfl.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.44/daemoninit.c link to apue/lib.sun/daemoninit.c
    hrw-r--r-- 224/20 0 1992-05-30 23:46 apue/lib.44/errorlog.c link to apue/lib.sun/errorlog.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.44/lockreg.c link to apue/lib.sun/lockreg.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.44/locktest.c link to apue/lib.sun/locktest.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.44/nspipe.c link to apue/lib.sun/nspipe.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.44/openmax.c link to apue/lib.sun/openmax.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.44/pathalloc.c link to apue/lib.sun/pathalloc.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/popen.c link to apue/lib.sun/popen.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/prexit.c link to apue/lib.sun/prexit.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/prmask.c link to apue/lib.sun/prmask.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/ptyfork.c link to apue/lib.sun/ptyfork.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/ptyopen.c link to apue/lib.sun/ptyopen.c
    hrw-r--r-- 224/20 0 1992-05-30 23:47 apue/lib.44/readn.c link to apue/lib.sun/readn.c
    hrw-r--r-- 224/20 0 1992-05-30 23:47 apue/lib.44/semaph.c link to apue/lib.sun/semaph.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/senderr.c link to apue/lib.sun/senderr.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/setfl.c link to apue/lib.sun/setfl.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/signal.c link to apue/lib.sun/signal.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/signalintr.c link to apue/lib.sun/signalintr.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/sleep.c link to apue/lib.sun/sleep.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/sleepus.c link to apue/lib.sun/sleepus.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/spipe.c link to apue/lib.sun/spipe.c
    hrw-r--r-- 224/20 0 1992-05-30 23:45 apue/lib.44/strerror.c link to apue/lib.sun/strerror.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/tellwait.c link to apue/lib.sun/tellwait.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/ttymodes.c link to apue/lib.sun/ttymodes.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.44/writen.c link to apue/lib.sun/writen.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/lib.44/ourhdr.h link to apue/advio/ourhdr.h
    hrwxr-xr-x 224/20 0 1992-05-30 23:45 apue/lib.44/systype.sh link to apue/lib.sun/systype.sh
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/bufargs.c link to apue/lib.sun/bufargs.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/lib.svr4/clrfl.c link to apue/lib.sun/clrfl.c
    hrw-r--r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/error.c link to apue/lib.44/error.c
    hrw-r--r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/errorlog.c link to apue/lib.sun/errorlog.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/popen.c link to apue/lib.sun/popen.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/lockreg.c link to apue/lib.sun/lockreg.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/locktest.c link to apue/lib.sun/locktest.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/nspipe.c link to apue/lib.sun/nspipe.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/openmax.c link to apue/lib.sun/openmax.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/lib.svr4/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/pathalloc.c link to apue/lib.sun/pathalloc.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/prexit.c link to apue/lib.sun/prexit.c
    hrw-r--r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/readn.c link to apue/lib.sun/readn.c
    hrw-r--r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/semaph.c link to apue/lib.sun/semaph.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/senderr.c link to apue/lib.sun/senderr.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/setfl.c link to apue/lib.sun/setfl.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/signal.c link to apue/lib.sun/signal.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/signalintr.c link to apue/lib.sun/signalintr.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/sleep.c link to apue/lib.sun/sleep.c
    hrw-r--r-- 224/20 0 1992-05-30 23:45 apue/lib.svr4/strerror.c link to apue/lib.sun/strerror.c
    hrwxr-xr-x 224/20 0 1992-05-30 23:45 apue/lib.svr4/systype.sh link to apue/lib.sun/systype.sh
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/tellwait.c link to apue/lib.sun/tellwait.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/ttymodes.c link to apue/lib.sun/ttymodes.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/prmask.c link to apue/lib.sun/prmask.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/writen.c link to apue/lib.sun/writen.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/spipe.socket.c link to apue/lib.sun/spipe.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:46 apue/lib.svr4/daemoninit.c link to apue/lib.sun/daemoninit.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/lib.svr4/ptyfork.c link to apue/lib.sun/ptyfork.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/lock/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/mycat/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/open.fe/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/open/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/opend.fe/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/opend/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:47 apue/opend/loop.select.c link to apue/opend/loop.c
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/printer/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/proc/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/pty/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/sess/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/signals/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/stdio/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/streams/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/termios/ourhdr.h link to apue/advio/ourhdr.h
    hrw-rw-r-- 224/20 0 1992-05-30 23:45 apue/test/ourhdr.h link to apue/advio/ourhdr.h

    Regards from
    David Kaasen.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lorinczy Zsigmond@21:1/5 to Peter Percival on Wed Aug 29 13:58:37 2018
    XPost: alt.comp.lang.c

    On 2018-07-05 15:50, Peter Percival wrote:
    W. Richard Stevens' /Advanced programming in the Unix environment/
    features a file ourhdr.h. I have downloaded the source code for the
    book from http://www.kohala.com/start/apue.tar.Z. There are a number of files called ourhdr.h but they all seem to be empty.

    I downloaded and expanded apue.tar.Z on a Windows 10 computer using
    WinZip with a view to transferring them, via a USB stick, to a Raspberry
    Pi.

    Try to uncompress file "apue/advio/ourhdr.h"
    in unix:

    zcat apue.tar.Z | tar -xf - apue/advio/ourhdr.h

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)