IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

PB recode open_pty Linux (Ubuntu)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Par défaut PB recode open_pty Linux (Ubuntu)
    Bonjour,

    Je dois recoder une fonction open_pty qui est comparable a celle du systeme.
    Sous FreeBSD ma fonction fonctionne parfaitement.
    Mais sur Linux (Ubuntu), elle ne fonctionne pas.

    Le probleme viens au momment ou je veux open mon tty, open me renvoie -1

    *aslave = open(ptsname(*amaster), O_CREAT|O_NOCTTY|O_WRONLY|O_TRUNC, S_IRWXU|S_IRWXG|S_IRWXO)

    mon ptsname(*master) me retourne le bon tty.
    Je ne voie pas pourquoi *aslave me renvoie -1 et non le file descriptor ???

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 476
    Par défaut
    Citation Envoyé par akao11 Voir le message
    *aslave = open(ptsname(*amaster), O_CREAT|O_NOCTTY|O_WRONLY|O_TRUNC, S_IRWXU|S_IRWXG|S_IRWXO)

    mon ptsname(*master) me retourne le bon tty.
    Je ne voie pas pourquoi *aslave me renvoie -1 et non le file descriptor ???
    « -1 » est un code d'erreur. C'est le seul moyen, pour ta fonction, de te prévenir que l'opération a échoué. Si c'est une erreur du système (en l'occurence, oui) tu peux utiliser perror(""); pour savoir précisément ce qu'il s'est passé.

    Ensuite, même si ce n'est probablement pas la cause de ton problème, O_CREAT sur un fichier spécial, ce n'est pas une bonne idée : non seulement tu n'auras probablement pas les droits d'aller créer quelque chose à l'endroit où se trouvent généralement les /dev, mais il est clair que tu ne cherches pas à créer un fichier ordinaire dans le cas où le fichier spécial n'existerait pas.

Discussions similaires

  1. Installation de Linux ubuntu
    Par Titeuf01-87 dans le forum Administration système
    Réponses: 12
    Dernier message: 22/01/2007, 21h21
  2. Réponses: 14
    Dernier message: 12/01/2007, 21h16
  3. serveur ftp sous linux ubuntu
    Par johnnyaque dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 14/09/2006, 17h28
  4. Lancement appli au démarrage de linux (ubuntu)
    Par _matt_44 dans le forum Linux
    Réponses: 8
    Dernier message: 24/01/2006, 09h45
  5. Linux Ubuntu et le Boot.ini de Windows
    Par Furius dans le forum Administration système
    Réponses: 12
    Dernier message: 17/10/2005, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo