On Sun, 2008-05-25 at 22:41 -0400, deoxy wrote:
> Hello.
> 
> I dont know if this a cuestion for this list, but I think is it a valid 
> cuestion...
> I reading a book recomended in http://www.openbsd.org/books.html The book is 
> "Advanced programmig in the unix environment".
> In this book I read Figure 3.1 but this not compile. the error is:
> 
> $cc F3_10.c
> /tmp//ccnsuA79.o(.text+027): In function 'main':
> :undefined reference to 'err_quit'
> /tmp//ccnsuA79.o(.text+0x74): In fuction 'main':
> :undefined reference to 'err_sys'
> /tmp//ccnsuA79.o(.txt+0xdf): In functiion 'main':
> :undefined reference to 'err_dump'
> collect2: ld returned 1 exit status
> 
> The source is:
> 
> 
> #include "apue.h"
> #include <fcntl.h>
> 
> int
> main(int argc, char *argv[])
> {
>       int val;
>       if (argc != 2)
>         err_quit("usage: a.out <descriptor#>");
>       if ((val = fcntl(atoi(argv[1]), F_GETFL, 0)) < 0)
>         err_sys("fcntl error for fd %d", atoi(argv[1]));
> 
>       switch (val & O_ACCMODE) {
>       case O_RDONLY:
>               printf("read only");
>               break;
>       case O_WRONLY:
>               printf("write only");
>               break;
>       case O_RDWR:
>               printf("read write");
>               break;
>       default:
>               err_dump("unknown access mode");
>       }
>       if (val & O_APPEND)
>               printf(", append");
>       if (val & O_NONBLOCK)
>               printf(", nonblocking");
>       #if  defined(O_SYNC)
>               if (val & O_SYNC)
>                       printf(", synchronous writes");
>       #endif
>               putchar('\n');
>               exit(0);
>       }
> 
> I dont know wath is the problem. your can helpme?
> 
> Sorry my bad english.
> 
> regards.
> 
> Dmitri.-

I think you are supposed to add the definitions for err_quit etc. from
the back of the book. You can download them I think and then you have to
link to them and make sure apue.h is on your include path.

Kendall

Reply via email to