Bonsoir,


Encore un probleme d'endianness.
En gros, que fait mon programme, il a une suite de structures bien remplies comme il faut, qu'il ecrit dans un fichier les unes a la suite des autres.
Ce ficher sera ensuite relu plus tard.
Donc pas de probleme d'endianness si il reste sur le meme type d'endian. Mais si je mets ce fichier sur une machine big endian, impossible de le relire correctement.

Il faut donc que je le passe en network order.

Or, voila mon probleme, je ne comprends pas, comment passer toute ma struct en network order. Elle contient notamment des char [].

Voici la struct en question:


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
 
 
typedef struct s_toto_info {
    uint32_t start_offset;
    uint32_t size;
    t_MODE MODE;
    t_TYPE TYPE;
    t_LANG LANG;
    t_OS OS;
    mode_t perms;
    char description[256];
} t_toto_info;
 
typedef struct s_toto_index {
    int id;
    char path[MAXPATHLEN];
    struct s_toto_info info;
} t_toto_index;
Comment htonl mon char description[256] our mon char path[MAXPATHLEN] par exemple ?


Merci.