2017-10-21 118 views
1

Donc, apparemment, je reçois cette erreur lorsque j'essaie de compiler mon côté client des choses. Le client doit lire le fichier texte ligne par ligne et envoyer la variable au serveur. Le code est le suivant:Erreur: Affectation à l'expression avec le type de tableau dans les canaux nommés

#define FIFONAME "my fifo" 

int main (int argc, char *argv[]){ 

int fd; 
char buffer[1024]; 
char const* const filename = argv[1] ; 
FILE* file = fopen(filename,"r"); 
int i,j; 
char array[128][128]; 
    char line [128]; 

/*Open the FIFO for writing. It was created by the server. 
*/ 
if ((fd = open (FIFONAME, O_WRONLY)) < 0) { 
    perror ("client : open"); 
    exit (1); } 

for(i=0; i=128;i++) 
for(j=0; j=128;j++) 
arra[j]= '\0'; 

for (i=0; i<128; i++) 
line = '\0'; 

if (file !=NULL) 
{ 
    i=0; 
    while (fgets(line,sizeof line, file) != NULL) 
    strcpy(arra, line); 
    printf ("%s",&arra); 
    i++; 

} 


while ((file = read(0, buffer, sizeof(buffer))) >0) { 
write(fd, buffer, file); 
} 

fclose(file); 
//close (fd); 
return (0); 
} 

Est-il possible que cette erreur puisse être résolue?

+1

'file = read (...' ?? – BLUEPIXY

+0

« * Je reçois cette erreur * » le compilateur vous indique * exactement où *, où la ligne se sent l'erreur – alk

+1

Désolé, à ce sujet, l'erreur qu'ils donnent est sur le tableau [j] = '\ 0'; line = '\ 0'; –

Répondre

0

Ici

char line [128]; 

line est défini comme un tableau de 128 char.

Ici

for (i=0; i<128; i++) 
    line = '\0'; 

le code tente 128 fois pour attribuer le caractère littéral '\ 0' à l'ensemble de tableau. Cela n'a pas de sens.

Qu'est-ce que vous pourriez besoin est prêt à établir tous les 128 éléments de line à '\0'. Donc, faire étape par étape:

for (i=0; i<128; i++) 
    line[i] = '\0';