2016-07-13 5 views
0

Ich versuche, ein Beispiel für Poll-System Aufruf von Robert Love Buch Linux-System-Programmierung 2. Ausgabe (pg. 60-61). Ich kopierte den Beispielcode in code :: blocks auf ubuntu14.04 und versuchte es zu kompilieren, aber ich erhalte Fehler in Bezug auf stray '/ 342'/210 'und'/222 'in meinem Code.Fehler mit stray ' 342' stray ' 210' stray ' 222' in c-Programm in Linux Systemaufruf

Im Folgenden finden Sie den Code ein: Es wirft Fehler in Zeile 18, wo if (ret == -1)

#include <stdio.h> 
#include <unistd.h> 
#include <poll.h> 
#define TIMEOUT 5 
/* poll timeout, in seconds */ 
int main (void) 
{ 
    struct pollfd fds[2]; 
    int ret; 
    /* watch stdin for input */ 
    fds[0].fd = STDIN_FILENO; 
    fds[0].events = POLLIN; 
    /* watch stdout for ability to write (almost always true) */ 
fds[1].fd = STDOUT_FILENO; 
fds[1].events = POLLOUT; 
/* All set, block! */ 
ret = poll(fds,2,TIMEOUT*1000); 
if (ret == −1) { 
perror("poll"); 
return 1; 
} 
if (!ret) { 
printf ("%d seconds elapsed.\n", TIMEOUT); 
return 0; 
} 
if (fds[0].revents & POLLIN) 
printf ("stdin is readable\n"); 
if (fds[1].revents & POLLOUT) 
printf ("stdout is writable\n"); 
return 0; 
} 

Die Fehler sind geprüft:

/home/eelab/sysprog/pollex/main.c|18| error: stray ‘\342’ in program| 
/home/eelab/sysprog/pollex/main.c|18| error: stray ‘\210’ in program| 
/home/eelab/sysprog/pollex/main.c|18| error: stray ‘\222’ in program| 

Nun, ich bin gegangen, durch ähnliche Fragen zu stackoverflow und sie erwähnen das mögliche Problem mit der Umwandlung von ASCII-Zeichen wie Anführungszeichen "". Allerdings habe ich alle Anführungszeichen in der IDE neu geschrieben. Aber es wirft immer noch den gleichen Fehler in der Zeile, in der If (ret == -1) aktiviert ist. Bitte helfen.

+0

es ist nicht wirklich ein Duplikat – userXktape

Antwort

2

Es ist der nicht druckbare auf

if (ret == −1) { 

Ersetzen Sie es mit -

+0

Dank bro.It funktioniert :) – userXktape