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 :
Donc logiquement l'appel serait du genre :
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)
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 :
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 ?
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); }
Merci pour votre aide !
Partager