fscanf / fscanf_s différence de comportement

Je suis intrigué par ce qui suit différence de comportement:

//suppose myfile.txt contains a single line with the single character 's'
    errno_t res;
    FILE* fp;
    char cmd[81];

    res = fopen_s(&fp, "D:\myfile.txt", "rb" );
    fscanf(fp,"%80s",cmd); //cmd now contains 's/0'
    fclose(fp);

    res = fopen_s(&fp, "D:\myfile.txt", "rb" );
    fscanf_s(fp,"%80s",cmd); //cmd now contains '/0' !
    fclose(fp);

Les résultats ne dépendent pas de l'ordre de l'appel (c'est à dire, appel fscanf_s d'abord, vous devez obtenir la chaîne vide (premier). Compilé sur VC++ - VS2005. Quelqu'un peut-il se reproduire? Quelqu'un peut-il m'expliquer?

Merci!

OriginalL'auteur Ofek Shilon | 2010-06-24