deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
25 mai 2006 à 19:45
Bel0
Messages postés71Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention14 septembre 2007
-
30 mai 2006 à 14:15
Bonjour a tous,
Voila j'ai installé une mandriva 2006, je programme en C et compile
avec gcc norme C99. Je suis bien avancé en programmation C win32, mais
la sous linux je me pert. comment fonctionne la prog system. Il y a
t-il des "API" comme sous windows? Je m'explique, prenon un bête
exemple. Sous windows je veu faire un programme qui liste les fichiers
d'un dossier et les affiche ainsi que la taille de chacun. J'ai
FindFirsFile et FindNextFile qui me permette de le faire, mais sous
linux? il y a-t-il des fonction contenue dans des lib du système?
J'espère que vous voyez ce que je veu dire. Si oui pourriez-vous me
donner des tuto ou de la doc la dessus? car mes fouilles ne donne rien.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 25 mai 2006 à 20:56
Sous Unix on appelle ca des appels systèmes. Ce sont a peut près les mêmes que ceux que tu peux utiliser dans un shell.
Du coup, pour la recherche je pense que tu as l'appel systeme find, mais je n'en suis pas sur
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 25 mai 2006 à 21:18
Après quelques recherches, j'ai trouvé les fonctions stat et fstat (qui sont déclarées dans le fichier sys/stat.h)
Je trouve que c'est quand même moins agréable à utiliser que les API de Windows
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 26 mai 2006 à 09:46
Bonjour,
Comme tout noyau, linux possède son API. Windows c'est environ 1200 primitives (ou appel système). Linux environ 800. Cependant c'est quasiment pareil, car linux possède des swiss knife avec les primitives de type ioctl (Des fonctions fourre tout)
Les fonctions de manipulation des répertoires sont déclarées dans dirent.h. Le reste des fonctions de manipulations de fichiers dans stdlib.h.
Un conseil. Avant d'attaquer l'API, commences par quelques tutoriaux sur les concepts UNIX et le shell. Leur compréhension facilite l'utilisation du système et sa programmation.
Si tu ne trouves pas de bon tutos c'est que tu dois mal chercher. C'est par bennes entières qu'il y en a sur le net.
Aucun en particulier à te conseiller. Sinon un bouquin
"La programmation sous UNIX" de JM Rifflet. Simple et relativement complet pour débuter.
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 26 mai 2006 à 14:31
Euh ... là je sais pas quoi te dire ... Franchement avant de passer par ici, je fais toujours un crochet par un quelconque moteur ... j'ai très souvent des réponses à foison... Peut être ne poses tu pas les bonnes questions, j'en sais rien...
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 26 mai 2006 à 19:16
J'ai vu tous ces lien, mais ce n'est absolument pas ca que je cherche,
en faite je cherche une sorte d'équivalent de la MSDN sous linux.
Quelque chose qui me permettrai de connaitre les API sous linux. Je ne
cherche pas des cours sur le C sous Linux , je cherche comment utiliser
les APIs de linux sous linux, c'est pas la même chose, car programmer
en C pure sous linux, je vous remercie mais je sais faire lol
Bel0
Messages postés71Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention14 septembre 2007 30 mai 2006 à 14:15
Pour tout ce qui est prototype de fonction, il y a les manpages
(bizarre que personne ne les aient encore citées !!). Sous
debian/ubuntu, le nom du package est manpages-dev (à toi de trouver
l'équivalent sous mandriva). Ces manpages donnent donc tout le détail à
propos d'une fonction (ou groupe de fonction proche) , tous les codes
d'erreurs possibles et parfois même des exemples. Par exemple, pour
accéder à l'aide de la fonction socket, man 2 socket. Le chiffre après
man correspond à une classification des manpages. Tout les appels
systèmes sont classés dans les manpages 2 (il y en a moins que 800
comme dit plus haut, faut pas confondre appel système et appel à la
libc). Dans cette catégorie, on trouve entre autre: open, close,
socket, bind, listen, dup, dup2, ioctl. La section 3 des manpages
concerne tout ce qui touche à la librairie C (librairie des fonctions
standards): fopen, fclose, malloc,
opendir (une fonction qui pourrait t'intéreser :))
A la fin de toutes les manpages, on trouve aussi une liste des manpages
associées dans la section "SEE ALSO". Par exemple, dans le cas de
opendir, on trouve les fonctions suivantes:
Le numéro (2,3), n'est nécessaire que quand il existe plus manpage (par
exemple, "man stat" et "man 2 stat" n'affichent pas le meme résultat).
Le
seul problème avec ces manpages est qu'il faut connaitre le nom exact
de la fonction pour laquelle on souhaite avoir de l'aide. C'est
évidemment très embetant quand on commence. En fait, il n'y a pas
vraiment d'index (mis à part les liens SEE ALSO). Heureusement, li
existe un petit utilitaire qui recherche un terme dans toutes les
manpages existantes. Il s'appelle "apropos" (désolé, je ne me rappelle
plus le nom du package dans lequel il est fourni). Par exemple, la
commande "apropos dir | grep "(3)"" permet d'afficher toutes les
manpages contenant "dir" dans leur titre (la partie avec grep permet de
filtrer l'output pour que ne soit affichées que les manpages de la
catégorie 3).
seb@seb# apropos dir | grep "(3)"
alphasort (3) - scan a directory for matching entries
bindtextdomain (3) - set directory containing message catalogs
closedir (3) - close a directory
dirfd (3) - get directory stream file descriptor
dirname (3) - Parse pathname components
FcConfigAppFontAddDir (3) - Add fonts from directory to font database
FcConfigGetConfigDirs (3) - Get config directories