Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Description des librairies C sous linux
Envoyé par: Pierre Brial

Bonjour,

Je me suis mis à la programmation en C sous linux il y a peu, après en avoir fait sous Dos/windows. La documentation en ma possession à propos des librairies concernent surtout celles disponibles pour Dos, provenant en général du classique Turbo C de Borland, qui était devenu une sorte de standard avec ses librairies tc*.h.

J'ai un peu du mal a trouver les fonctions équivalentes sous linux. Pourtant, quand je regarde le répertoire /usr/include, des librairies, il y en a un paquet ! Mon bonheur doit se trouver là-dedans. Existe t'il un catalogue synthétique de l'ensemble des fonctions contenues dans ces librairies ? Il suffirait juste d'une liste sommaire de toutes les fonctions avec une brève description et la librairie dans laquelle elle se trouve. Du genre :

Fonction Description librairie
sin() sinus math.h


Je sais que 'man' documente certaines librairies, mais ce n'est pas très pratique pour chercher une fonction particulière lorsque l'on ne sait pas dans quelle librairie elle se trouve.
J'ai cherché sur gcc.gnu.org, mais rien sur les librairies.

En ce moment, je cherche l'équivalent linux de getdfree, qui donne la capacité d'un disque dur (librairie dos.h).

A bientôt

Pierre

Poste le Sunday 21 May 2006 19:40:05
Répondre     Citer    
Re: Description des librairies C sous linux
Envoyé par: abgech

À cette adresse, tu trouveras ton bonheur (attention c'est en gros pavé en anglais). La description complète et détaillée de toute les fonction de la librairie GNU C:
[www.gnu.org]

Poste le Sunday 21 May 2006 19:42:54
Répondre     Citer    
Re: Description des librairies C sous linux

je conseille aussi la lecture d'un bon livre sur la programmation Unix ou Posix (par exemple, "Advanced Programming in the UNIX Environment" de feu R.Stevens, qui a été revu et corrigé, ou "UNIX PROGRAMMATION ET COMMUNICATION" de RIFFLET chez Dunod).

Mais on peut aussi apprendre avec le man, notamment

man 2 intro
man 2 syscalls

Enfin, il n'y a aucune raison pour que chaque fonction DOS ou Windows aie son équivalent sous Unix. (car les deux systèmes Windows et Unix/Linux sont différents conceptuellement). Pour des statistiques sur un système de fichier monté (le concept de montage n'existe pas en DOS) on peut utiliser statfs

En gros, je ne crois pas que chercher l'équivalent d'une fonction DOS soit la bonne approche. Il faut acquérir une compréhension des concepts de base d'Unix, des appels systèmes (qui sont très différents de Windows). Cet apprentissage demande des efforts et du temps.

Et je trouve que la documentation de la GNU libc (paquet glibc-doc sous Debian) est assez complète (au format info).

Enfin, il existe des bibliothèques qui fournissent une interface commune à plujsieurs OS, y compris pour les aspects système. Par exemple la bibliothèque Qt en offre une (Qt n'est pas seulement pour les interfaces graphiques) et aussi la Glib (dans GTK et Gnome).

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Sunday 21 May 2006 19:59:28
Répondre     Citer    
Re: Description des librairies C sous linux
Envoyé par: Pierre Brial

Bonjour,

Merci pour vos réponses rapides.

Le lien vers libc.html est excellent, c'est encore mieux que ce que je cherchais.

Je suis d'accord avec toi, Basile, sur le fait qu'il ne faille pas chercher à traduire litérallement des programmes C-DOS en C-Linux. Mais comme Turbo-C disposait de petites fonctions pratiques et simple d'usages, j'ai tout naturellement regardé s'il existait des équivalents linux. Je pense par exemple à gotoxy, qui permet d'écrire en un endroit précis de l'écran, et dont j'ai trouvé l'équivalent dans l'excellente bibliothèque NCurses.
Bien entendu, je dis ça parce que je suis un amateur qui fait de tout petit programmes tout simples, qui ne vont pas fouiller dans les rouages internes du système.
C'est d'ailleurs dommage que pour ce qui est de la programmation en mode console, il n'y ait pas une standardisation des librairies C entre les différents systèmes d'exploitations. En effet, même si le fonctionnement intrinsèque des systèmes est différent, rien n'empèche que des fonctions donnant les mêmes résultats et utilisant les mêmes paramètres portent le même nom. Prenons par exemple fa fonction kbhit(), qui permet d'intercepter l'appui d'une touche du clavier. Cette fonction n'existe pas en C linux car la gestion des interruptions clavier est différente du DOS dans les système UNIX. Mais rien n'empèche de la programmer, et certains l'ont fait. Le code ainsi réalisé est très différent de celui de la fonction kbhit() de Turbo C, mais le mode d'utilisation est strictement identique. Ceci facilite considérablement le portage de programme d'un système à l'autre.

Sur ces réflexions matinales, merci encore pour l'aide et les remarques pertinentes.

Bonne journée

Pierre

Poste le Monday 22 May 2006 06:28:47
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Description des librairies C sous linux
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons