begin process at 2012 05 30 14:04:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Fichier & Disque

 > 

Programmation système sous LINUX


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Programmation système sous LINUX

jeudi 25 mai 2006 à 19:45:49 | Programmation système sous LINUX

deck_bsd

Membre Club
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.


Merci d'avance.
jeudi 25 mai 2006 à 20:56:02 | Re : Programmation système sous LINUX

vecchio56

Administrateur CodeS-SourceS
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
jeudi 25 mai 2006 à 21:18:06 | Re : Programmation système sous LINUX

vecchio56

Administrateur CodeS-SourceS
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
vendredi 26 mai 2006 à 09:46:57 | Re : Programmation système sous LINUX

AlexN

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.
vendredi 26 mai 2006 à 14:12:36 | Re : Programmation système sous LINUX

deck_bsd

Membre Club
Merci a tous.

AlexN, par bennes entières? on dit tous le temps google est ton amis , mais la ... il ne l'ai pas vraiment, je trouve rien.
vendredi 26 mai 2006 à 14:31:40 | Re : Programmation système sous LINUX

AlexN

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...

t'as essayer des trucs comme :

tutoriel linux
cours linux
aide linux

restreint ta recherche à france.

au hasard essayes
[ Lien ]
[ Lien ]
[ Lien ]

Tiens v'la même un cours de fac
[ Lien ]

Franchement c'est de la mauvaise fois je dirais.
A toi de jouer...
vendredi 26 mai 2006 à 19:16:44 | Re : Programmation système sous LINUX

deck_bsd

Membre Club
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
vendredi 26 mai 2006 à 19:20:36 | Re : Programmation système sous LINUX

deck_bsd

Membre Club
bon mon choix sait porté sur http://www.editions-eyrolles.com/Livre/9782212116014/programmation-systeme-en-c-sous-linux
mardi 30 mai 2006 à 14:15:11 | Re : Programmation système sous LINUX

Bel0

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:
open(2),  closedir(3),  dirfd(3), readdir(3), rewinddir(3), scandir(3),
seekdir(3), telldir(3).

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
FcConfigGetFontDirs (3) - Get font directories
FcDirCacheValid (3)  - check directory cache timestamp
FcDirSave (3)        - save a directory cache
FcDirScan (3)        - scan a font directory
FcStrDirname (3)     - directory part of filename
get_current_dir_name (3) - Get current working directory
getcwd (3)           - Get current working directory
getdirentries (3)    - get directory entries in a filesystem independent format
getwd (3)            - Get current working directory
mkdtemp (3)          - create a unique temporary directory
opendir (3)          - open a directory
pvmfadvise (3)       - Controls use of direct task-to-task routing.
pvmfprecv (3)        - Receive a message directly into a buffer.
readdir (3)          - read a directory
rewinddir (3)        - reset directory stream
scandir (3)          - scan a directory for matching entries
seekdir (3)          - set the position of the next readdir() call in the directory stream.
telldir (3)          - return current location in directory stream
versionsort (3)      - scan a directory for matching entries

Dans le résultat, tout n'est pas forcément intéressant mais on voit quand même quelque fonction qui pourrait t'intéresser :)

Belo


Cette discussion est classée dans : programme, windows, programmation, système, linux


Répondre à ce message

Sujets en rapport avec ce message

portage Linux vers visual C++ [ par acsx ] Salut,J'ai un programme écrit en C sous Linux et je souhaite le faire tourner sous Visual C++ 6.0 sous Windows.J'ai donc créé un projet win32 et intég Exception [ par GrosTony ] Salut,Mon problème commence lors d'un avec un programme que j'ai du récupérer et valider, mais le problème est qu'il avait été testé avec seulement 3 Windows XP + programmation console [ par mondrone ] Salut. Je voudrais savoir si Windows XP n'est pas légèrement incompatible avec les programmes en mode console, car depuis le temps que je programme (p passer un programme GTK de linux à windows [ par Dr_zoidberg ] Bonjour,J'ai choisi de créer une interface en GTK afin de pouvoir porter mon programme de linux à windows.Seulement pour l'instant, je n'ai pas encore A l'aide...création d'un programme compatible windows et linux [ par nicko666 ] Bonjour à tous,voila j'ai un gros problème, je suis débutant et je suis obligé de créer un programme C++ qui doit pouvoir tourner sur windows aussi bi pb avec windows.h sous linux [ par mattpss ] Salut,Je suis actuellement en 2eme année de bts informatique. J'aimerais Executer un programme sous eclipse mais dans mon programme j'utilise la bibli Compiler un programme C++/ Linux sous windows [ par magicientarik ] Bonjour Qulequ'un peut m'aider svp, je suis vraiment dans la merde, mon programme est developpé en C++ sous linux et je veux le recompiler sous wind Exe linux en exe windows (programme c++) [ par tiouil ] Bonjour à tous, Je me tourne de nouveau vers vouscar ayant developpé pas mal de jeux en c++ sur linux, j'aimerais les exporter vers en exe windows. A [BAR]A propos de Linux Ubuntu [ par saramaria ] Bonjour tous le monde, j'utilise windows 7 comme Os et je voudrais installer Linux Ubuntu sur ma machine tout en conservant mon windows 7 de tel sorte internet explorer tourne en boucle à l'ouverture système windows 7 [ par nitiendo ] bonjour l'internet explorer que j'avais sous windows 7 ne fonctionnait plus j'ai essayer de télécharger internet explorer 8 mais le système n'est pas


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales