2010-12-08 4 views
4

Où puis-je télécharger les fichiers d'en-tête suivants pour dev ctéléchargement en-tête des fichiers

sys/types.h sys/socket.h netinet/in.h arpa/inet.h

et aussi la structure

sockadder et ses dérivés?

+1

Pour quelle implémentation? Linux, MSVC, FreeBSD, Solaris ont tous leur propre version ... – thkala

+0

On dirait que vous étudiez la programmation de socket Unix. Ceux-ci font partie des prises de Berkeley si je me souviens bien. Je ne sais pas où vous les aurez. Sous Linux, devrait faire partie d'un paquet. Aucune idée sur Windows. –

+0

Si vous êtes sur une machine * nix, ils vivent probablement sous '/ usr/include /' – nategoose

Répondre

1

Avec quel SDK travaillez-vous? Pour Linux, vous obtenez ces fichiers dans le cadre de votre core C sdk. Pour Windows, il est livré avec le SDK. Si vous voulez juste un regard rapide et sale à quelques fichiers d'en-tête j'utilise http://www.google.com/codesearch.

0

Les en-têtes (et non fichiers d'en-tête) font partie de l'implémentation. Ils n'ont pas besoin d'être de vrais fichiers.

Si votre implémentation ne les fournit pas, vous n'avez pas de chance. Si votre implémentation leur fournit des fichiers réels et que vous les avez supprimés, la réinstallation du compilateur peut fonctionner. Si votre implémentation leur fournit des fichiers réels et que vous ne pouvez pas réinstaller le compilateur, votre approche peut fonctionner. Désolé, je n'ai aucune idée de l'endroit où télécharger les fichiers --- ou pourquoi quelqu'un copierait les fichiers quelque part en premier lieu.

+0

"Fichiers d'en-tête" est parfaitement OK. http://www.googlefight.com/index.php?lang=en_GB&word1=%22C+Headers%22&word2=%22C+Header+Files%22 - Et qu'entendez-vous par "ils n'ont pas besoin d'être de vrais fichiers"? – Roddy

+0

@Roddy: cette chose googlefight ne veut rien dire. Vérifiez 6.4.7 dans la norme C (http://www.open-std.org/JTC1/sc22/wg14/www/standards) --- PDF (http://www.open-std.org/JTC1/ sc22/wg14/www/docs/n1256.pdf) – pmg

+1

** les en-têtes ** passent de '<>'; ** les fichiers d'en-tête ** vont entre '" "'. ** les en-têtes ** sont fournis par la mise en œuvre; ** les fichiers d'en-tête ** sont fournis par le programmeur. ** les en-têtes ** peuvent faire partie du compilateur binaire, ou leurs informations peuvent être connues par le compilateur sans aucun autre support. – pmg

5

Je ne sais pas pourquoi vous devez télécharger ces fichiers spécifiques, car ils devraient venir avec votre suite de compilateurs dans la plupart des systèmes modernes.

Vous devez également garder à l'esprit qu'ils peuvent être radicalement différents en fonction de votre plate-forme et que ces fichiers contiennent souvent d'autres fichiers non-standard (dont #include autres et ainsi de suite). Cela pourrait rendre ces fichiers très difficiles à analyser et à comprendre.

Cela dit, à partir une version indéterminée de Linux:

http://linux.die.net/include/sys/types.h

http://linux.die.net/include/sys/socket.h

http://linux.die.net/include/netinet/in.h

http://linux.die.net/include/arpa/inet.h

Si vous allez remplacer les fichiers manquants, envisager d'obtenir/réinstaller une suite de compilateur appropriée et tout paquet de développeur vous manque.

Si vous voulez regarder les définitions de structure, vous devriez certainement regarder la documentation plutôt que les implémentations réelles. De cette façon, vous évitez d'attacher votre code à des définitions privées e.t.c. cela peut changer entre les systèmes.

EDIT:

Juste pour confirmer certains de mes commentaires ci-dessus, struct sockaddr pour ladite version de Linux est définie pièce par pièce dans:

http://linux.die.net/include/bits/socket.h

http://linux.die.net/include/bits/sockaddr.h

0
do: 
apt-get install gcc-4.2 
+0

.... en supposant qu'il utilise Linux –

0

Je suppose que vous essayez de compiler un code source pour la plate-forme * nix sous un autre, comme Windows. Cette approche ne vous fera aucun bien. Rappelez-vous que vous aurez besoin des bibliothèques de ces en-têtes et qu'elles ne sont pas portables.

Installez une machine virtuelle avec Ubuntu sur votre PC pour effectuer ce type de développement.

Questions connexes