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