Προς το περιεχόμενο

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • 0
MauriDalia

Αρχείο unp.h

Ερώτηση

Καλησπέρα!

Προσπαθώντας να τεστάρω το παρακάτω προγραμμα

>

#include "unp.h"
int
main(int argc, char **argv)
{
int listenfd, connfd;
pid_t childpid;
socklen_t clilen;
struct sockaddr_in cliaddr, servaddr;
listenfd = Socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));
Listen(listenfd, LISTENQ);
for ( ; ; ) {
clilen = sizeof(cliaddr);
connfd = Accept(listenfd, (SA *) &cliaddr, &clilen);
if ( (childpid = Fork()) == 0) { /* child process */
Close(listenfd); /* close listening socket */
str_echo(connfd); /* process the request */
exit(0);
}
Close(connfd); /* parent closes connected socket*/
}
}

void
str_echo(int sockfd)
{
ssize_t n;
char line[MAXLINE];
for ( ; ; ) {
if ( (n = Readline(sockfd, line, MAXLINE)) == 0)
return; /* connection closed by other end */
Writen(sockfd, line, n);
}
}

 

κανω include το unp.h και στο compile μας εμφανίζει τα παρακάτω λάθη

In file included from server.c:1:

unp.h:7:63: error: config.h: No such file or directory

unp.h:192:30: error: ../lib/addrinfo.h: No such file or directory

In file included from server.c:1:

unp.h:282: error: conflicting types for âgai_strerrorâ

/usr/include/netdb.h:640: error: previous declaration of âgai_strerrorâ was here

unp.h:286: error: conflicting types for âgetnameinfoâ

/usr/include/netdb.h:649: error: previous declaration of âgetnameinfoâ was here

unp.h:290: error: conflicting types for âgethostnameâ

/usr/include/unistd.h:845: error: previous declaration of âgethostnameâ was here

unp.h:306: error: conflicting types for âinet_ntopâ

/usr/include/arpa/inet.h:67: error: previous declaration of âinet_ntopâ was here

unp.h:427:2: error: #endif without #if

 

Διαβασα κάπου πως :

To unp.h ειναι ενα header που χρησιμοποιει ο stevens στο βιβλίο του [unix network programming] και ο σκοπός του ειναι το interoperatibility μεταξύ διαφορετικών πλατφορμών [solaris BSD linux 2.4 / linux etc]. Μπορείς γενικά να το βρεις εδώ http://www.unpbook.com/ στα sources και με κάποιο τρόπο να το προσθέσεις στο δικό σου codebase είτε να φτίαξεις ένα αντιστοιχο header από την αρχή.

_________________

 

Μπόρει κάποιος να δώσει τα φώτα του τι συμβαίνει με αυτό το αρχείο?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

1 απάντηση σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

×
×
  • Δημιουργία νέου...