在Linux系统调用的c程序中,错误的'\ 342'迷路'\ 210'迷路'\ 222'

时间:2016-07-13 05:18:51

标签: c++ c linux systems-programming

我试图在Robert Love的书籍Linux系统编程第2版(第60-61页)中进行民意调查系统调用。我复制粘贴在ubuntu14.04上的code :: blocks中的示例代码并尝试编译它,但是我得到了与stray' / 342'相关的错误。 ' / 210'和' / 222'在我的代码中。

以下是代码:它在第18行抛出错误,其中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;
 }

错误是:

/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|

现在,我已经在stackoverflow上遇到了类似的问题,他们提到了ascii字符转换的可能问题,如引号&#34; &#34 ;.但是,我再次在IDE中重写了所有引号。但它仍然会在if(ret == -1)被选中的行上引发相同的错误。 请帮忙。

1 个答案:

答案 0 :(得分:2)

上有不可打印的
if (ret == −1) {

将其替换为-