Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

appelsys.h

11 réponses
Avatar
strohecker guillaume
Bonjour,

Je suis en train d'étudier le C sous Unix et je suis confronté a un
petit problème de bibliothèque.
Dans quel paquet se trouve appelsys.h -> j'ai bien installé
libhugs-unix-bundled (POSIX) mais j'obtiens toujours :

emprex@debian:~/le_langage_C/chap8$ gcc copieIE.c -o copieIE
copieIE.c:1:22: error: appelsys.h: Aucun fichier ou répertoire de ce
type
copieIE.c: In function ‘main’:
copieIE.c:4: error: ‘BUFSIZ’ undeclared (first use in this function)
copieIE.c:4: error: (Each undeclared identifier is reported only once
copieIE.c:4: error: for each function it appears in.)
emprex@debian:~/le_langage_C/chap8$

mes recherches sur le Web ne me donne pas plus de réponse.

Merci pour votre aide
Guillaume


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org

10 réponses

1 2
Avatar
Sylvain Sauvage
strohecker guillaume, dimanche 7 juin 2009, 12:26:27 CEST

Bonjour,



’jour,

Je suis en train d'étudier le C sous Unix et je suis confronté a un
petit problème de bibliothèque.
Dans quel paquet se trouve appelsys.h -> j'ai bien installé



appelsys.h me semble bien francophone comme nom.
Ce n’est pas un nom de fichier include C standard.

libhugs-unix-bundled (POSIX) mais j'obtiens toujours :



hugs est un compilateur Haskell. Ça n’a rien à voir ave c un
cours de C.

:~/le_langage_C/chap8$ gcc copieIE.c -o copieIE


^^^^^^^^^^^^^^^^^^

Ah, c’est donc ce bouquin que tu utilises.

[…]
mes recherches sur le Web ne me donne pas plus de réponse.



1. find ~/le_langage_C -name appelsys.h
2. Lire les instructions qui devraient aller avec le bouquin.

Le fichier manquant doit être fourni quelque part avec
celui-ci. Et il devrait même y avoir un joli fichier Makefile
dans un coin. Sinon, voir l’option -I de gcc.

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Basile STARYNKEVITCH
strohecker guillaume wrote:
Bonjour,

Je suis en train d'étudier le C sous Unix et je suis confronté a un
petit problème de bibliothèque.
Dans quel paquet se trouve appelsys.h -> j'ai bien installé
libhugs-unix-bundled (POSIX) mais j'obtiens toujours :

:~/le_langage_C/chap8$ gcc copieIE.c -o copieIE
copieIE.c:1:22: error: appelsys.h: Aucun fichier ou répertoire de ce
type
copieIE.c: In function ‘main’:
copieIE.c:4: error: ‘BUFSIZ’ undeclared (first use in this function)
copieIE.c:4: error: (Each undeclared identifier is reported only once
copieIE.c:4: error: for each function it appears in.)
:~/le_langage_C/chap8$

mes recherches sur le Web ne me donne pas plus de réponse.



appelsys.h n'est pas un fichier d'entête standard. En plus, le nom est
français (alors que le standard Posix et les conventions linuxiennes
sont en anglais). Je pense donc que c'est propre à votre école.

pour savoir que fait tel appel système, par exemple select, il convient
de lire sa page de manuel par la commande
man 2 select
(et il faut avoir installé le paquet manpages-dev). Une page de man se
défile avec les touches flèches, et se quitte par la touche q.

Je suggère notamment la lecture des sorties de
Par ailleurs le paquet libhugs-unix-bundled et lié à Hugs, un interprète
Haskell. Trop peu d'écoles en France enseignent la programmation
fonctionnelle, et souvent préfèrent l'enseigner avec le langage Ocaml
(qui est développé en France, à l'INRIA projet Gallium). Donc je ne
pense pas que le paquet libhugs-unix-bundled vous soit utile, et il est
certainement inutile pour programmer en C.

Par contre, il est utile aussi d'installer le paquet libc-dev ou
libc6-dev qui fournit les fichiers d'entête usuels (sous /usr/include).

Et une recherche Web sur BUFSIZ suggère l'inclusion de <stdio.h> qui
n'interface pas les appels systèmes, mais ceux de la librairie standard
C. Un appel système n'est pas une appel de fonction. Wikipedia fournit
plein d'informations à ce sujet:
http://fr.wikipedia.org/wiki/Appel_syst%C3%A8me
http://fr.wikipedia.org/wiki/Linux
http://fr.wikipedia.org/wiki/Noyau_Linux


Ca me sidère qu'un étudiant ne soit pas capable de chercher de nos jours
sur le Web ou en bibliothèque universitaire et éprouve le besoin de
déranger une liste pour ça. Qu'il n'oublie pas que son prof risque aussi
de lire cette liste!

Cordialement

--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Sylvain Sauvage
Basile STARYNKEVITCH, dimanche 7 juin 2009, 12:46:57 CEST
[…]
Ca me sidère qu'un étudiant ne soit pas capable de chercher de nos jours
sur le Web ou en bibliothèque universitaire et éprouve le besoi n de
déranger une liste pour ça. Qu'il n'oublie pas que son prof ris que aussi
de lire cette liste!



Bémol : Guillaume dit qu’il « étudie le C  », pas qu’il « est
étudiant » (stricto sensu, avec une jolie carte avec sa photo
dessus).
D’ailleurs, en ce moment, les étudiants préparent ou pa ssent
leur examens terminaux (enfin, pas aujourd’hui, vu qu’on est
dimanche). (Et j’espère pour eux que la préparation ne co nsiste
pas à tester pour la première fois et à la dernière min ute les
programmes d’un bouquin.)
Donc, pour résumer, si ça se trouve, Guillaume est un chien ¹â€¦

À part ça, si tu es sidéré par si peu, ne mets pas le s pieds
dans un cours (pas seulement dans une université d’ailleurs),
tu risquerais l’attaque d’apoplexie foudroyante (ou la pris on à
vie pour génocide²).

¹ non, ce n’est pas une insulte.
² oui, parfois, on a envie d’en prendre un pour taper sur
les autres…

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
strohecker guillaume
Bonjour ,
Merci pour vos réponses.
Simple précision, je ne suis pas étudiant et je n'ai donc pas de prof.
Mon support est le K&R2 qui fait référence à appelsys.h pour expliquer
la programmation en C sous Unix.
Mes recherches ne me donnent aucune information sur le paquet qui
contient cette bibliothèque. J'ai pensé à installer le paquet
libhugs-unix-bundled car il fait référence à POSIX. les autres paquets
sont installés.
Cdt
Guillaume
Le dimanche 07 juin 2009 à 12:46 +0200, Basile STARYNKEVITCH a écrit :
strohecker guillaume wrote:
> Bonjour,
>
> Je suis en train d'étudier le C sous Unix et je suis confronté a un
> petit problème de bibliothèque.
> Dans quel paquet se trouve appelsys.h -> j'ai bien installé
> libhugs-unix-bundled (POSIX) mais j'obtiens toujours :
>
> :~/le_langage_C/chap8$ gcc copieIE.c -o copieIE
> copieIE.c:1:22: error: appelsys.h: Aucun fichier ou répertoire de ce
> type
> copieIE.c: In function ‘main’:
> copieIE.c:4: error: ‘BUFSIZ’ undeclared (first use in this function)
> copieIE.c:4: error: (Each undeclared identifier is reported only once
> copieIE.c:4: error: for each function it appears in.)
> :~/le_langage_C/chap8$
>
> mes recherches sur le Web ne me donne pas plus de réponse.

appelsys.h n'est pas un fichier d'entête standard. En plus, le nom est
français (alors que le standard Posix et les conventions linuxiennes
sont en anglais). Je pense donc que c'est propre à votre école.

pour savoir que fait tel appel système, par exemple select, il convient
de lire sa page de manuel par la commande
man 2 select
(et il faut avoir installé le paquet manpages-dev). Une page de man se
défile avec les touches flèches, et se quitte par la touche q.

Je suggère notamment la lecture des sorties de
Par ailleurs le paquet libhugs-unix-bundled et lié à Hugs, un interprète
Haskell. Trop peu d'écoles en France enseignent la programmation
fonctionnelle, et souvent préfèrent l'enseigner avec le langage Ocaml
(qui est développé en France, à l'INRIA projet Gallium). Donc je ne
pense pas que le paquet libhugs-unix-bundled vous soit utile, et il est
certainement inutile pour programmer en C.

Par contre, il est utile aussi d'installer le paquet libc-dev ou
libc6-dev qui fournit les fichiers d'entête usuels (sous /usr/include).

Et une recherche Web sur BUFSIZ suggère l'inclusion de <stdio.h> qui
n'interface pas les appels systèmes, mais ceux de la librairie standard
C. Un appel système n'est pas une appel de fonction. Wikipedia fournit
plein d'informations à ce sujet:
http://fr.wikipedia.org/wiki/Appel_syst%C3%A8me
http://fr.wikipedia.org/wiki/Linux
http://fr.wikipedia.org/wiki/Noyau_Linux


Ca me sidère qu'un étudiant ne soit pas capable de chercher de nos jours
sur le Web ou en bibliothèque universitaire et éprouve le besoin de
déranger une liste pour ça. Qu'il n'oublie pas que son prof risque aussi
de lire cette liste!

Cordialement

--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Jean-Damien Durand
On Sunday 07 June 2009 13:20:35 strohecker guillaume wrote:
Bonjour ,
Merci pour vos réponses.
Simple précision, je ne suis pas étudiant et je n'ai donc pas d e prof.
Mon support est le K&R2 qui fait référence à appelsys.h po ur expliquer
la programmation en C sous Unix.
Mes recherches ne me donnent aucune information sur le paquet qui
contient cette bibliothèque. J'ai pensé à installer le paq uet
libhugs-unix-bundled car il fait référence à POSIX. les au tres paquets
sont installés.
Cdt
Guillaume



Attend ca serait pas... syscall.h qu'une version francaise aurait osé traduire
en appelsys.h... !?!?!?

JD.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Sylvain Sauvage
Jean-Damien Durand, dimanche 7 juin 2009, 15:05:03 CEST
[…]
Attend ca serait pas... syscall.h qu'une version francaise aurait osà © traduire
en appelsys.h... !?!?!?



Peut-être… mais personne n’inclut syscall.h. La seul e utilité
de syscall.h, c’est quand on utilise la fonction syscall(2), et
personne n’utilise syscall(2), on utilise les fonctions, enfin⠀¦
les « prototypes typés » des appels systèmes. En clair, on ne
fait pas
int res = syscall(SYS_read, fd, buf, cnt);
on fait
int res = read(fd, buf, cnt);
ce qui permet d’avoir une vérification du type des arguments p ar
le compilateur, en plus d’une meilleure lisibilité.

Mais bon, il y a tellement de bouquins qui sont mal traduits
ou dont les exemples sont plutôt pourris…

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Jean-Damien Durand
On Sunday 07 June 2009 17:40:57 Sylvain Sauvage wrote:
Jean-Damien Durand, dimanche 7 juin 2009, 15:05:03 CEST

>[…]
> Attend ca serait pas... syscall.h qu'une version francaise aurait osà ©
> traduire en appelsys.h... !?!?!?

Peut-être… mais personne n’inclut syscall.h. La se ule utilité
de syscall.h, c’est quand on utilise la fonction syscall(2), et
personne n’utilise syscall(2), on utilise les fonctions, enfin⠀¦
les « prototypes typés » des appels systèmes. En clai r, on ne
fait pas
int res = syscall(SYS_read, fd, buf, cnt);
on fait
int res = read(fd, buf, cnt);
ce qui permet d’avoir une vérification du type des arguments par
le compilateur, en plus d’une meilleure lisibilité.

Mais bon, il y a tellement de bouquins qui sont mal traduits
ou dont les exemples sont plutôt pourris…

--
Sylvain Sauvage



Certes - entièrement d'accord - tiens j'ai trouvé ce lien...:

http://users.powernet.co.uk/eton/kandr2/krx803.html

Ca sous-entend que le K&R2 (que je n'ai pas) mentionnerait des include qu'i l
vaut mieux éviter - mais bon ne l'ayant pas je préfères ne r ien affirmer-; -;

JD.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
strohecker guillaume
désolé J.d. Je me suis précipité sur le bouton répondre.

En regardant les liens que vous m'avez donnés je test le code :
#include "syscall.h"
#define BUFSIZ 1024


main(){ /* copie l'entrée sur la sortie */
char tamp[BUFSIZ];
int n;

while ((n = read(0, tamp, BUFSIZ)) > 0)
write(1, tamp, n);
return 0;
}
et la compilation se déroule bien. Mais dans la suite du texte il bien écrit que
le parmètre BUFSIZ est compris dans appelsys.h (syscall.h).
Et c'est la que je bloque.
cdt Guillaume
Le dimanche 07 juin 2009 à 17:51 +0200, Jean-Damien Durand a écrit :
On Sunday 07 June 2009 17:40:57 Sylvain Sauvage wrote:
> Jean-Damien Durand, dimanche 7 juin 2009, 15:05:03 CEST
>
> >[…]
> > Attend ca serait pas... syscall.h qu'une version francaise aurait osé
> > traduire en appelsys.h... !?!?!?
>
> Peut-être… mais personne n’inclut syscall.h. La seule utilité
> de syscall.h, c’est quand on utilise la fonction syscall(2), et
> personne n’utilise syscall(2), on utilise les fonctions, enfin…
> les « prototypes typés » des appels systèmes. En clair, on ne
> fait pas
> int res = syscall(SYS_read, fd, buf, cnt);
> on fait
> int res = read(fd, buf, cnt);
> ce qui permet d’avoir une vérification du type des arguments par
> le compilateur, en plus d’une meilleure lisibilité.
>
> Mais bon, il y a tellement de bouquins qui sont mal traduits
> ou dont les exemples sont plutôt pourris…
>
> --
> Sylvain Sauvage

Certes - entièrement d'accord - tiens j'ai trouvé ce lien...:

http://users.powernet.co.uk/eton/kandr2/krx803.html

Ca sous-entend que le K&R2 (que je n'ai pas) mentionnerait des include qu'il
vaut mieux éviter - mais bon ne l'ayant pas je préfères ne rien affirmer-; -;

JD.





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Yves Rutschle
On Sun, Jun 07, 2009 at 05:40:57PM +0200, Sylvain Sauvage wrote:
Mais bon, il y a tellement de bouquins qui sont mal traduits
ou dont les exemples sont plutôt pourris...



#inclus <stdes.h>
#inclus <stdbib.h>

rien principal(rien) {
imprimef("%c", "Bonjour monden");
}

(%c comme "chaine de caractère" bien sûr).

Enfin bon, s'il y a un bouquin qui traduit les noms de
fichiers d'en-tête, ça me parait un pretexte valable pour
incendier l'éditeur.

Y.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Jean-Damien Durand
Ok, pourrais tu confirmer stp que:

c'est écrit /explicitement/ que BUFSIZ est défini dans "appelsys. h" ?

Si oui c'est doublement faux si si appelsys.h serait un define distribuà © avec
le bouquin: appelsys.h n'existe PAS dans la norme du C, et BUFISZ est dà ©fini
dans <stdio.h>.

Eventuellement copie/paste le bout qui marque ca, ou scanne le et envoie ca
sur pastebin ou un truc du genre: faut demander un errata si ce n'est dà ©ja
fait (serais-ce déj fait ?).

JD.

On Sunday 07 June 2009 18:23:59 strohecker guillaume wrote:
désolé J.d. Je me suis précipité sur le bouton rà ©pondre.

En regardant les liens que vous m'avez donnés je test le code :
#include "syscall.h"
#define BUFSIZ 1024


main(){ /* copie l'entrée sur la sortie */
char tamp[BUFSIZ];
int n;

while ((n = read(0, tamp, BUFSIZ)) > 0)
write(1, tamp, n);
return 0;
}
et la compilation se déroule bien. Mais dans la suite du texte il bi en
écrit que le parmètre BUFSIZ est compris dans appelsys.h (sysca ll.h).
Et c'est la que je bloque.
cdt Guillaume

Le dimanche 07 juin 2009 à 17:51 +0200, Jean-Damien Durand a éc rit :
> On Sunday 07 June 2009 17:40:57 Sylvain Sauvage wrote:
> > Jean-Damien Durand, dimanche 7 juin 2009, 15:05:03 CEST
> >
> > >[…]
> > > Attend ca serait pas... syscall.h qu'une version francaise aurait o sé
> > > traduire en appelsys.h... !?!?!?
> >
> > Peut-être… mais personne n’inclut syscall.h. L a seule utilité
> > de syscall.h, c’est quand on utilise la fonction syscall(2), et
> > personne n’utilise syscall(2), on utilise les fonctions, enfi n…
> > les « prototypes typés » des appels systèmes. En clair, on ne
> > fait pas
> > int res = syscall(SYS_read, fd, buf, cnt);
> > on fait
> > int res = read(fd, buf, cnt);
> > ce qui permet d’avoir une vérification du type des argum ents par
> > le compilateur, en plus d’une meilleure lisibilité.
> >
> > Mais bon, il y a tellement de bouquins qui sont mal traduits
> > ou dont les exemples sont plutôt pourris…
> >
> > --
> > Sylvain Sauvage
>
> Certes - entièrement d'accord - tiens j'ai trouvé ce lien...:
>
> http://users.powernet.co.uk/eton/kandr2/krx803.html
>
> Ca sous-entend que le K&R2 (que je n'ai pas) mentionnerait des include
> qu'il vaut mieux éviter - mais bon ne l'ayant pas je préfà ¨res ne rien
> affirmer-; -;
>
> JD.




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
1 2