Linux - ioctl avec FIONREAD toujours 0

J'essaie de savoir combien d'octets il y a lisible à mon socket TCP. Je fais appel ioctl avec le Drapeau "FIONREAD" qui devrait en fait de me donner cette valeur.
Lorsque j'appelle la fonction-je obtenir que le retour de val 0 ( donc pas d'Erreur ), mais aussi mon argument entier obtient la valeur 0. Ce serait pas un problème, mais lorsque j'appelle le recv() méthode que j'ai effectivement lu quelques Octets de la prise. Ce que je fais mal?

//ici, un peu de Code:

char recBuffer[BUFFERLENGTH] = {0};
int bytesAv = 0;
int bytesRead = 0;
int flags = 0;
if ( ioctl (m_Socket,FIONREAD,&bytesAv) < 0 )
{
    //Error
}
if ( bytesAv < 1 )
{
    //No Data Available
}
bytesRead = recv(m_Socket,recBuffer,BUFFERLENGTH,flags);

Lorsque j'appelle la fonction recv je acutally lire certaines Données valides ( je m'y attendais )

OriginalL'auteur Toby | 2011-08-08