GNU/Linux Magazine Hors-série N°
Numéro
70

Langage C

Temporalité
Janvier/Février 2014
Image v3
Langage C
Article mis en avant

Résumé

« The power of assembly language and the convenience of… assembly language »

C'est en ces mots que le regretté Dennis Ritchie a un jour décrit le langage qu'il a lui-même créé en 1972 avec, par la suite, la participation de Ken Thompson et Brian Kernighan que l'on peut aisément qualifier, tous trois, comme étant également les pères d'UNIX. Le C, ce langage de programmation impérative, procédurale et structurée est, ni plus, ni moins, pour le monde de l'informatique, ce qu'est la roue pour le monde moderne.

Dans ce numéro...


Découvrez le langage de référence de la programmation impérative.
Même si elles ne font pas vraiment partie du langage C à proprement parler, puisqu'elles appartiennent au préprocesseur, les macros sont des outils qui peuvent s'avérer fort pratiques.
Les spécificateurs de format ou format specifiers sont ces éléments (%) permettant, comme leur nom l'indique, de spécifier la manière de formater une donnée avec certaines fonctions comme scanf() et printf(). Cette dernière, rappelons-le, est utilisée pour transférer du texte, des valeurs ou des résultats d'expressions sur la sortie standard STDOUT.
Certaines fonctionnalités mal aimées du C tendent à être également mal connues. Elles recèlent cependant souvent des applications inattendues.
Lors d'un développement, vous êtes peut-être déjà tombé sur le message d'erreur incompréhensible suivant : « Dereferencing type-punned pointer will break strict-aliasing rules ». Ce qui pourrait se traduire par « Déréférencer un pointeur pointant sur deux types différents rompt les règles d'aliasing strictes ». Ce qui n'est toujours pas très clair.
Le langage C dispose d'opérateurs permettant de tester, modifier et effectuer des opérations au niveau du bit. Ces opérations sont souvent réservées à des utilisations restreintes, alors qu'elles sont ultra-rapides et ont des applications quelques fois insoupçonnées. Une restriction toutefois est que ces opérateurs ne s'appliquent qu'à des entiers (la plupart du temps non signés).
Le point d'entrée d'un programme en C est la fonction main(). Il existe cependant des situations où l'on souhaiterait procéder à un ensemble d'actions, soit avant, soit après main(). Ceci peut être utile, par exemple, lorsqu'il y a systématiquement des opérations à appliquer pour bien finir un programme.
Dans une série d'articles dédiés à l'IDE Eclipse [GLMF n°159], je vous ai présenté la programmation graphique en C++ avec la librairie graphique GTK+. Nous allons ici l’utiliser avec le langage C, langage natif de ce toolkit.
Vous avez besoin d'une bibliothèque C graphique, capable d'utiliser plusieurs types de systèmes d'affichage (X, framebuffer, OpenGL, etc.), fonctionnant aussi bien sur PC que sur système embarqué, incluant des fonctionnalités avancées comme un système de description d'interfaces, plusieurs langages de scripts intégrés, le tout reposant sur des fondations solides et des bibliothèques utilitaires adaptées ? Ne cherchez plus ! C'est des EFL qu'il s'agit !
Lors du dernier numéro hors-série sur le langage C, nous vous avions proposé d'étendre Python avec des modules C. Nous avions alors introduit quelques bases. Aujourd'hui, nous vous proposons le contraire : utiliser des modules Python au sein de vos applications en C.
Si votre projet prend de l'ampleur, qu'il risque d'être utilisé dans d'autres pays que le vôtre, il convient alors de présenter une interface dans la langue de l'utilisateur. Pour cela, il faut, entre autres, traduire tous les intitulés textes de votre programme. On dit que l'on « régionalise » l'application. Voyons quels sont les outils qui vont nous aider dans cette tâche...

Magazines précédents

Exploiter au mieux votre projet open source
GNU/Linux-Magazine Hors-série N°69
Exploiter au mieux votre projet open source
MySQL et Bases de données
GNU/Linux-Magazine Hors-série N°67
MySQL et bases de données
Apache, le guide complet
GNU/Linux-Magazine Hors-série N°66
Apache, le guide complet
Python avancé
GNU/Linux-Magazine Hors-série N°65
Python avancé

Les derniers articles Premiums

Les derniers articles Premium

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Sécurisez vos applications web : comment Symfony vous protège des menaces courantes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les frameworks tels que Symfony ont bouleversé le développement web en apportant une structure solide et des outils performants. Malgré ces qualités, nous pouvons découvrir d’innombrables vulnérabilités. Cet article met le doigt sur les failles de sécurité les plus fréquentes qui affectent même les environnements les plus robustes. De l’injection de requêtes à distance à l’exécution de scripts malveillants, découvrez comment ces failles peuvent mettre en péril vos applications et, surtout, comment vous en prémunir.

Bash des temps modernes

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Les scripts Shell, et Bash spécifiquement, demeurent un standard, de facto, de notre industrie. Ils forment un composant primordial de toute distribution Linux, mais c’est aussi un outil de prédilection pour implémenter de nombreuses tâches d’automatisation, en particulier dans le « Cloud », par eux-mêmes ou conjointement à des solutions telles que Ansible. Pour toutes ces raisons et bien d’autres encore, savoir les concevoir de manière robuste et idempotente est crucial.

Body