PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unix Network Programming | config.h



ponzellus
03-04-2002, 13:24
Hi!

ich bin vor kurzem mal mit "Unix Network Programming" von R. Stevens angefangen und wollte die Bespiele-Codes aus dem Buch auch abtippen und testen...
Jetzt hat Stevens aber eine Headerfile "unp.h" geschrieben, die alle moeglichen definitionen enthalten. Der Code der Headerfile ist auch dabei, nur included die wiederrum eine "../config.h". Laut Stevens wird die irgendwie von autoconf erstellt, nur habe ich absolut keinen plan, wie ich mir die jetzt generieren kann (meine ersten versuche mit autoconf sind total fehlgeschlagen ;))
Kann mir da wer helfen?

Danke schonmal :)

MfG
-ponzellus-

TThomas
04-04-2002, 08:08
Hi ponzellus!

Am besten ist es, dir ein eigenes Headerfile zu schreiben, in welchem die benötigten Dateien einbindest und für dich passende Deklarationen machst.

Was du so brauchen könntest:


#include <sys/types.h> /* basic system data types */
#include <sys/socket.h> /* basic socket definitions */
#include <sys/time.h> /* timeval{} for select() */
#include <time.h> /* timespec{} for pselect() */
#include <netinet/in.h> /* sockaddr_in{} and other Internet defns */
#include <arpa/inet.h> /* inet(3) functions */
#include <errno.h>
#include <fcntl.h> /* for nonblocking */
#include <netdb.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h> /* for S_xxx file mode constants */
#include <sys/uio.h> /* for iovec{} and readv/writev */
#include <unistd.h>
#include <sys/wait.h>
#include <sys/un.h> /* for Unix domain sockets */


Probiere einfach ein bisschen herum, dabei lernst du am meisten! :D


Gruß, Thomas.


PS: Dieser Punkt mit den Configfiles und den etwas undurchsichtigen Verknüpfungen ist wohl die größte Schwachstelle des Buchs...

ponzellus
04-04-2002, 10:22
Danke fuer die Hilfe
so klappts :)

MfG
-ponzellus-

ponzellus
04-04-2002, 12:03
ich habs eben doch hinbekommen, das er mir ne config.h generiert :)
und zwar mussten in die configure.in fuer jede headerfile ein
AC_CHECK_HEADERS(sys/ioctl.h)
und an den anfang ein
AC_CONFIG_HEADER(config.h:config.h.in)
damit autoheader die daten zum pruefen in die config.h.in schreibt und configure nachher die #define's in die config.h schreibt
so dass dann hier in dem beispiel nachher
#define HAVE_SYS_IOCTL_H
in der config.h steht :)

MfG
-ponzellus-