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 :

Méthode 'Write' undeclared


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Par défaut Méthode 'Write' undeclared
    Bonjour à tous,

    Tout d'abord, j'utilise le compilateur g++ v3.2 sous solaris 9 sparc.
    Lorsque je lance la compilation de mon fichier cpp, les erreurs suivantes apparaissent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    test.cpp: In function 'int main(int, char**)':
    test.cpp:78: 'write' undeclared (first use this function)
    Voici un piti bout de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #include <iostream>
    #include <fstream>
     
    using namespace std;
     
    #include <stdlib.h> 
    #include <strings.h> 
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <sys/un.h>
    #include <stdio.h>
     
    int
    main(int argc, char **argv)
    {   
     
    .....
     
           if (write(connfd, buff, strlen(buff)) < 0)
           { 
                perror("write error");
                exit(1);
            }
     
        }
    }
    La méthode write n'est apparement pas déclaré, pourtant j'utilise bien <fstream>... Une idée?

  2. #2
    Membre éclairé Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par défaut
    La méthode write n'appartient pas a fstream ni a iostream...

    Utilise des objet de type ofstream ou ifstream si tu veux acceder a tes fichiers en c++

  3. #3
    Membre éclairé Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par défaut
    Pour info si tu veux ecrire et lire sur un socket tu doit utiliser les commandes recv et send

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 15
    Par défaut
    esseye avec :

    ::write


    Luther

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Par défaut
    J'ai essayé avec ::write, mais il ne reconnait pas cette methode non plus...
    A quelle librairie appartient ::write ( ou write )?

  6. #6
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par défaut
    Citation Envoyé par Higestromm
    Pour info si tu veux ecrire et lire sur un socket tu doit utiliser les commandes recv et send
    +1

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Par défaut
    Dans ce tutorial http://c.developpez.com/WalrusSock/ , je vois apparaitre ces commandes (recv et send)... Seulement, ce tutorial est basée sur de la programmation avec winsock2... Sont-elles aussi valables pour de la prog sous unix?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 17
    Par défaut
    http://cs.ecs.baylor.edu/~donahoo/pr...icalSocket.cpp

    Mea culpa, elles sont aussi présentes dans sys/socket.h...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #ifdef WIN32
      #include <winsock.h>         // For socket(), connect(), send(), and recv()
      typedef int socklen_t;
      typedef char raw_type;       // Type used for raw data on this platform
    #else
      #include <sys/types.h>       // For data types
      #include <sys/socket.h>      // For socket(), connect(), send(), and recv()
      #include <netdb.h>           // For gethostbyname()
      #include <arpa/inet.h>       // For inet_addr()
      #include <unistd.h>          // For close()
      #include <netinet/in.h>      // For sockaddr_in
      typedef void raw_type;       // Type used for raw data on this platform
    #endif
    Merci beaucoup de votre aide... Dernière petite question, le c est-il plus adapté à la programmation socket que le c++?

  9. #9
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par défaut
    le c est-il plus adapté à la programmation socket que le c++?
    Ben tout dépend de ce que tu veux faire avec tes sockets.
    si tu veux faire un petit client qui envoie une requête pis qui affiche le retour, le c dervait aller. mais si tu veux faire un serveur qui gère plusieurs clients, et tout plein de trucs à côté le C++ est conseillé.

    tu peux aller lire ce post :
    http://www.developpez.net/forums/viewtopic.php?t=44389

    ++

  10. #10
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    A lire le bouquin de Smidt et les docs et tuto sur ACE, il semblerait qu'il y ait des incompatibilités mineures entre les diverses biblio "systèmes" de communication via socket.

    Plus les problèmes faciles de mauvaises utilisation. Bref, il vend (GPL) son produit (ACE) comme portable, facilitant la vie, et réduisant les risques d'erreurs. ACE comprend une surcouche C++ au dessus des bibliothèques système de comm via sockets.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  11. #11
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 22
    Par défaut
    mouarf, ce serait quand même dommage d'acheter une librairie juste à cause de quelques
    incompatibilités mineures
    non?
    Bon c'est vrai que je n'ai jamais fait de communication via les sockets très poussées, mais je n'ai jamais rencontré de problème.

    de plus sous windows, il semblerait qu'une seule bibliothèque soit nécessaire pour mettre en place une communication socket (winsock ou winsock2), je me trompe ? donc les
    incompatibilités mineures entre les diverses biblio "systèmes" de communication via socket.
    ne sont pas un problème.

    ++

  12. #12
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    J'ai utilisé "vend" comme dans "faire de la pub". Sinon, je me suis trompé : la licence n'est pas GPL, mais une variété de license open-source.
    Et ce qui vaut le coup, c'est abstractions et robustesse. Je ne peux résumer en 3 lignes l'introduction de la doc de ACE.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PrintStream méthode write
    Par SOA_j2EE dans le forum Général Java
    Réponses: 4
    Dernier message: 18/07/2009, 19h26
  2. [PDF] Méthode Write() et méthode Text()
    Par crati dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/03/2009, 18h38
  3. méthode write de la classe FileOutputStream
    Par new_wave dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 16/09/2008, 17h16
  4. Port sériel et méthode Write(byte[],offset,length)
    Par TheCaribouX dans le forum C#
    Réponses: 6
    Dernier message: 02/06/2008, 17h10
  5. [flux] Différence de la méthode write
    Par quilo dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 27/09/2006, 11h18

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