tontonflingueur a écrit 196 commentaires

  • [^] # Re: Hum

    Posté par  . En réponse au message redefinition of ..... Évalué à 1.

    Ah non !!! ce n'est pas le même problème. Tous à l'heure c'était un problème de compilation. Là c'est un problème de Link. Si ton fichier s'appelle main.cpp et qu'il a besoin de fonctions (ou de méthodes) définies dans Mail.cpp et pers.cpp, tu dois compiler en faisant :
    cc main.cpp Email.cpp pers.cpp -o ton_programme
    
    ou
    cc -c main.cpp 
    cc -c Email.cpp 
    cc -c pers.cpp 
    cc main.o Email.o pers.o -o ton_programme
    
    Si ton appli devient grosse, et longue à compiler, tu auras vite envie de faire un Makefile.
  • [^] # Re: Hum

    Posté par  . En réponse au message redefinition of ..... Évalué à 2.

    Sauf que je pense que ce sera pas suffisant. Je pense que rody a un fichier personne.h et un fichier Email.h Son fichier personne.h contient qqch comme
    class personne
    {
       ...
        Email *email;
       ...
    };
    
    et le fichier Email.h
    class Email
    {
       ...
       personne *_personne;
    };
    
    Pour résoudre ça il faut faire une "forward declaration", du genre
    class Email;
    
    au début de personne.h, en tout cas avant la déclaration de la classe personnel.
  • [^] # Re: typedef

    Posté par  . En réponse au message Segmentation fault!. Évalué à 1.

    Le typedef n'alloue rien du tout, effectivement ; mais l'instruction

    > Tab tableau;

    (dans le main), oui. Elle est équivalente à

    > int tableau[300];
  • # Re: Vim et encoding

    Posté par  . En réponse au message Vim et encoding. Évalué à 1.

    Ajoute la commande

    > set encoding=iso-8859-1

    dans ton $HOME/.gvimrc (pour la version graphique) ou dans ton $HOME/.vimrc (pour la version texte).

    Attention : ça convertit rien du tout, ça suppose juste :

    1) quand tu rentres un caractère (par exemple é), c'est l'octet correspondant dans la norme iso-8859-1 qui va être écrite dans le texte.

    2) quand tu édites un texte, il suppose que le fichier texte est au format iso-8859-1 et affiche les caractères en conséquence.
  • [^] # Re: Comme prevu, je ne sais pas compiler

    Posté par  . En réponse au message Ejection du CD avant que le PC ne s'éteigne. Évalué à 1.

    C'est juste des constantes qui ne sont pas définies dans ton programme ...

    Ajoute


    #include <linux/cdrom.h>

    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>


    Bonne chance.
  • # Re: petit souci de codage de caractère

    Posté par  . En réponse au message petit souci de codage de caractère. Évalué à 1.

    Voir le poste de °O° à cette adresse : http://linuxfr.org/2003/02/26/11496.html. Apparemment le caractère 0x92 (166 en décimal) n'est pas défini dans la norme iso 8859-1.
  • [^] # Re: Merci, mais je que doit-je faire

    Posté par  . En réponse au message Ejection du CD avant que le PC ne s'éteigne. Évalué à 1.

    Oups, il manque un

    int fd = -1;

    juste après le main.
  • [^] # Re: Merci, mais je que doit-je faire

    Posté par  . En réponse au message Ejection du CD avant que le PC ne s'éteigne. Évalué à 1.

    Non, ce que le Monsieur t'a posté, c'est du C, donc a priori il faut le mettre dans un programme force_eject.c . Le code complet doit être qqch comme :
    #include <sys/ioctl.h>
    
    int main(void){
       fd = open("/dev/cdrom", O_RDONLY|O_NONBLOCK, 0);
       if (fd > 0) {
          ioctl(fd, CDROM_LOCKDOOR, 0);
          close(fd);
       }
       fd = open("/dev/cdrom", O_RDONLY|O_NONBLOCK, 0);
       if (fd > 0) {
          ioctl(fd, CDROMEJECT, 0);
          close(fd);
       }
    } 
    
    et compiler avec :
    cc force_eject.c -o force_eject
    
    tu pourras alors appeler force_eject depuis ton script...
  • [^] # Re: Droit et accès fichiers

    Posté par  . En réponse au message exposé sur le controle d'acces aux fichier sous linux. Évalué à 1.

    Et éventuellement, si ton kernel et ton système de fichiers le supporte, man setfacl et man getfacl.
  • # NIS: pas seulement pour l'authentification ...

    Posté par  . En réponse au message NIS et Mappes. Évalué à 1.

    En fait, NIS ne permets pas seulement de partager les données d'authentification, mais aussi d'autres types de données.

    Si tu veux partager les données d'authentification, tu vas cocher passwd - ce qui te permets de partager tes comptes et tes mots de passe, et sûrement group qui te permets de partager les groupes.

    Les map NIS se comportent comme des ajouts à /etc/passwd et /etc/group. Les autres maps
    Il faut voir ces map comme des ajouts aux fichiers /etc/passwd et /etc/group. Pour les autres maps, ce sont aussi les équivalents des fichiers qui se trouve dans /etc

    - services : ça te permet de mapper les noms de service tcp/ip et les numéros de port. Par exemple telnet a le port 23, ftp 22, ...
    - rpc : ça te permet de mapper le numéro de requête de remote procedure call (un truc qui te permets en gros d'appeler une fonction C sur un serveur distant) . Par exemple NFS utilise le RPC 10003.
    - protocols : c'est comme services, mais une couche plus bas (couche IP). Par exemple le protocole TCP utilise le numéro 6.
    - printcap : c'est l'horrible fichier de configuration utilisé par le démon d'impression lpd. Les partager en NIS doit être utile pour des imprimantes réseau.

    Les autres, je ne les connais pas ....
    @+
  • [^] # Re: vim + ctags ...

    Posté par  . En réponse au message Sondage : Outils d'édition et exploration de sources. Évalué à 1.

    Ah oui, et je n'ai pas bien compris ce que tu appelles "gestion de l'historique", mais gvim te garde une espèce de pile, et CTRL + T te permets de remonter dans ta pile de navigation ...
  • # vim + ctags ...

    Posté par  . En réponse au message Sondage : Outils d'édition et exploration de sources. Évalué à 1.

    Pour du C pur, j'étais assez content de gvim + ctags.

    * Il suffit de faire passer ctags sur l'ensemble de tes sources ...

    * de faire CTRL+] pour que ça t'emmène à l'endroit où le symbole était défini ...

    Ca marche aussi pour java et C++, mais ce n'est plus aussi pratique pour des langages objets, parce qu'en général tu as plusieurs entrées pour une méthode données, correspondant à des classes différentes.

    Sinon, pour cacher les #ifdef, sous vim tu as un truc qui s'appelle folding, ça doit te permettre de faire quelque chose comme ça. Mais je n'ai jamais trop maîtrisé, et en fait, je n'aime pas trop ça...
  • [^] # Re: ...

    Posté par  . En réponse au message fichier texte. Évalué à 3.

    fclose() sert à libérer les ressources associées à fich. Effectivement, si tu te contentes de faire un petit programme de test qui ouvre un fichier, le lit et se termine, fclose() ne t'apportera rien.

    Mais si tu as un serveur (mettons un serveur web), qui accepte une requête HTTP, ouvre le fichier html à servir avec fopen(), le lit pour l'envoyer sur le réseau et que tu ne fais pas de fclose(), au bout d'un certain nombre de requête, tes fopen vont planter avec un EMFILE (too many open file).

    C'est une excellente habitude à prendre en programmation - et surtout en C - que de libérer les ressources dont tu n'as plus besoin.
  • [^] # Re: ...

    Posté par  . En réponse au message fichier texte. Évalué à 2.

    La page de man de strtok spécifie :


    BUGS

    Never use these functions. (...)



    Gérer du texte avec la bibliothèque de base du C est vraiment pénible.
    Si tu as le choix - si tu ne fais ça pour un devoir pour lequel ton prof t'a dit explicitement d'utiliser les fonctions de la bibliothèque standard - je te conseille d'apprendre la glib - c'est une des bibliothèques de base de GNOME. Le C devient soudainement beaucoup plus sympathique.
  • [^] # Re: tr

    Posté par  . En réponse au message Une aide, svp. Évalué à 1.

    > t'en connais beaucoup des comme ca? Parce que j'ai pas souvenir
    > d'en avoir rencontré.

    Bah oui, par exemple un script perl (ou autre) à deux balles qui se contente de lire dans stdin, et pour lequel t'as pas envie de coder de paramètres.
  • # Xwc ?

    Posté par  . En réponse au message Explorer instintc. Évalué à 1.

    Xwc n'est pas mal, et ressemble assez à l'explorateur Windows 95.

    http://sourceforge.net/projects/xwc/
  • # Re: erreur de compilation

    Posté par  . En réponse au message erreur de compilation. Évalué à 2.

    En fait, c'est une variable d'environnement que tu dois modifier avant de compiler.

    Il faut que tu cherches où se trouve le fichier libnautilus-extension.pc. Je n'en sais pas plus parce que je ne suis pas un utilisateur de fedora, et je ne sais pas bien ce que sont yum et nrpms.

    > find / -name libnautilus-extension.pc -print

    Mettons qu'il se trouve dans /usr/lib/pkgconfig, alors tu dois passer la commande suivante :

    > export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig

    Maintenant, il se peut aussi que tu n'ais pas le fichier libnautilus-extension.pc. Alors, il faut que tu installes un package devel, du genre nautilus-devel ou nautilus-extension-devel.
  • [^] # Re: Dangereux

    Posté par  . En réponse au message le compte root. Évalué à 0.

    Deux utilisateurs avec le même UID ? Je suis sceptique ...
  • # Impossible

    Posté par  . En réponse au message le compte root. Évalué à 0.

    C'est impossible. Il n'y a qu'un compte root, c'est celui qui a l'uid 0. Cet utilisateur est particulier ; c'est en dur dans le code du kernel. Par exemple, c'est le seul qui a le droit d'ouvrir d'écouter sur des ports TCP < 1024 ; donc, par exemple c'est le seul à pouvoir lancer des services tels que telnet, ssh, http, ... C'est le seul à pouvoir monter des systèmes de fichiers s'ils ne sont pas définis dans /etc/fstab. Il a des tas d'autres prérogatives qui ne me viennent

    En outre c'est celui qui possède la plupart des fichiers systèmes. Tu pourrais modifier les fichiers systèmes en question pour leur faire appartenir à un groupe particulier comme wheel, et leur donner l'accès en lecture-écriture, mais tu risquerais soit de casser des trucs, soit de compromettre la sécurité de ton système.

    En fait le principe, c'est qu'il n'y a qu'un root. Après, tu définis des utilisateurs qui passent root (su -) lorsque ils ont besoin d'effectuer des tâches d'administration - c'est mieux, comme ça on voit dans les logs qui a pris les droits root à un instant donné. Il y a des choses pour faciliter / encadrer cela, comme l'utilitaire sudo, ou le fichier /etc/suauth (sur certaines distributions) pour définir qui a droit de passer root, et sous quelles conditions ...
  • # RE: Exporter variable perl dans le shell qui le lance

    Posté par  . En réponse au message Exporter variable perl dans le shell qui le lance. Évalué à 3.

    Non, pas directement.

    Si tu lances ton interpréteur perl, c'est que tu fais un fork(). Un processus forke hérite des variables d'environnement du processus de l'environnement qui le lance. Mais le processus fils de peut pas modifier l'environnement du père.

    En outre, tu peux renvoyer un code retour, mais c'est limité : c'est un nombre entre -127 et +127.

    Le mieux c'est de renvoyer ce que tu veux sur la sortie standard de ton script perl : comme ceci

    perl (script.pl)

    > #!/usr/bin/perl
    > my $resultat="Le resultat !!!";
    > print "$resultat\n";

    shell :

    > RESULTAT=`perl script.pl`

    RESULTAT devrait contenir "Le resultat !!!".
  • [^] # Re: B i g B r o t h e r

    Posté par  . En réponse au message script verification espace disque. Évalué à 1.

    Tu as des actions chez Quest Software toi ;-)

    Tu peux utiliser la commande mail qui vient avec la package mailx.
    En gros c'est

    > mail -s "Sortie de df" toi@mail.org < /etc/scripts/espacedisque

    Tu peux même faire tout simplement

    > df | mail -s "Sortie de df" toi@mail.org

    Mais bon, je ne doute pas qu'il existe un soft qui fasse beaucoup mieux.
  • [^] # Re: Résolution identifiant de group ?

    Posté par  . En réponse au message Résolution identifiant de group ?. Évalué à 3.

    Euh je voulais dire, le fichier /etc/group ne serait-il pas lisible que par root ?
  • # Re: Résolution identifiant de group ?

    Posté par  . En réponse au message Résolution identifiant de group ?. Évalué à 4.

    Etrange. Le fichier /etc/group ne serait-il pas en lecture seul ?
    Que contient ton fichier /etc/nsswitch.conf ?
    As-tu touché à la configuration de PAM (les fichiers qui sont dans /etc/pam.d) ?
  • # RE : erreur du shell

    Posté par  . En réponse au message Xargs locate ls. Évalué à 3.

    Pour moi ce n'est pas une erreur de locate mais du shell (bash).
    Mon avis est que parmi les fichiers trouvés par locate, tu en as un dont le nom contient une simple quote. xargs le passe à ls et ça le perturbe.

    Mais je n'ai aucune idée de comment résoudre le problème. Pour chercher des fichiers, j'utilise plutôt

    > find . -name "*.ext" -exec ls -lh '{}' ';'

    C'est pas tout à fait équivalent. locate utilise une base de données, je crois...
  • [^] # Re: Idée de point important du troll...

    Posté par  . En réponse au message cherche doc, tutoriel ou éventuellement cours. Évalué à 1.

    ... ou alors, c'est qu'il n'y a vraiment plus d'utilisateur d'Emacs ...