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 :

Développement de modules Apaches en C


Sujet :

C

  1. #1
    Membre chevronné

    Homme Profil pro
    Mentaliste
    Inscrit en
    Mars 2008
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Mentaliste
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 872
    Points : 1 813
    Points
    1 813
    Par défaut Développement de modules Apaches en C
    Quelqu'un s'y connait là dedans ou pas ?
    Il y a quelque chose que je ne comprends pas, c'est peut-être du C pur, mais bon bref.
    Voilà la définition dans les sources Apache :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /**
     * read the data from the bucket
     * @param e The bucket to read from
     * @param str The location to store the data in
     * @param len The amount of data read
     * @param block Whether the read function blocks
     */
    apr_bucket_read(e,str,len,block)
    Donc logiquement l'appel serait du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const char data[500];
    apr_size_t len;
    apr_bucket_read(e, &data, &len, APR_BLOCK_READ);
            }

    Seulement tous les appels dans les sources Apache sont ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const char *data;
    apr_size_t len;
    apr_bucket_read(e, &data, &len, APR_BLOCK_READ);
                ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "Lu : %d - %s", len, data);
            }
    Autrement dit, on dirait qu'il n'y a pas vraiment de copie, ou bien que data est alloué, alors que dans la déclaration ce n'est pas ce qui est expliqué. A moins que je manque quelque chose ?

    Merci pour votre aide !
    .I..

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Non c'est le comportement normal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /**
         * Read the data from the bucket. This is required to be implemented
         *  for all bucket types.
         * @param b The bucket to read from
         * @param str A place to store the data read.  Allocation should only be
         *            done if absolutely necessary. 
         * @param len The amount of data read.
         * @param block Should this read function block if there is more data that
         *              cannot be read immediately.
         */
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

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

Discussions similaires

  1. Compilation et installation de PHP en tant que module Apache
    Par sebeni dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 26/06/2009, 07h33
  2. Réponses: 1
    Dernier message: 10/01/2008, 18h30
  3. Méthode de développement par module, comment ?
    Par blaise_laporte dans le forum Architecture
    Réponses: 5
    Dernier message: 22/02/2007, 19h01
  4. Développez un module Apache
    Par Montaigne dans le forum Apache
    Réponses: 1
    Dernier message: 05/10/2005, 11h38
  5. Module Apache et droits d'accès
    Par Jean++ dans le forum Apache
    Réponses: 3
    Dernier message: 28/04/2004, 16h28

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