Linux 系统调用中 C 程序中杂散的“342”杂散“210”杂散“222”时出错

Error with stray ‘342’ stray ‘210’ stray ‘222’ in C program in Linux system call

本文关键字:杂散 出错 系统调用 程序 Linux      更新时间:2023-10-16

我正在尝试在Robert Love的书Linux系统编程,第2版(第60-61页)中的轮询系统调用中做一个例子。我在 Ubuntu 14.04(Trusty Tahr)上的 Code::Blocks 中复制粘贴了示例代码并尝试编译它,但我在代码中收到与杂散的"/342"/210"和"/222"相关的错误。

以下是代码:它在检查 if(ret == -1) 的第 18 行抛出错误

#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 standard input for input */
  fds[0].fd = STDIN_FILENO;
  fds[0].events = POLLIN;
  /* Watch standard output 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 readablen");
  if (fds[1].revents & POLLOUT)
    printf ("stdout is writablen");
  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|

现在,我已经在堆栈溢出上遇到了类似的问题,他们提到了ASCII字符(如引号" ")的转换可能存在的问题。但是,我再次重写了 IDE 中的所有引号。但它仍然在检查 if(ret == -1) 的行上抛出相同的错误。

有不可打印的

if (ret == −1) {

将其替换为-