Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 杂散故障‘\342’;流浪者‘\210’;流浪者‘\222’;Linux系统调用中的C程序_C++_C_Linux_Systems Programming - Fatal编程技术网

C++ 杂散故障‘\342’;流浪者‘\210’;流浪者‘\222’;Linux系统调用中的C程序

C++ 杂散故障‘\342’;流浪者‘\210’;流浪者‘\222’;Linux系统调用中的C程序,c++,c,linux,systems-programming,C++,C,Linux,Systems Programming,我正在尝试做一个来自Robert Love的书《Linux系统编程》第二版(第60-61页)的轮询系统调用示例。我将示例代码复制粘贴到(Trusty Tahr)上并尝试编译它,但在代码中出现了与“/342”/210”和“/222”相关的错误 下面是代码:它在第18行抛出错误,其中检查了if(ret==-1) #include <stdio.h> #include <unistd.h> #include <poll.h> #define TIMEOUT 5

我正在尝试做一个来自Robert Love的书《Linux系统编程》第二版(第60-61页)的轮询系统调用示例。我将示例代码复制粘贴到(Trusty Tahr)上并尝试编译它,但在代码中出现了与“/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 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 readable\n");

  if (fds[1].revents & POLLOUT)
    printf ("stdout is writable\n");

  return 0;
 }

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

存在不可打印的
打开

if (ret == −1) {

将其替换为
-
存在无法打印的
打开

if (ret == −1) {

-

替换它,谢谢兄弟。它可以工作:)更准确地说,它是Unicode代码点U+2212()。在大多数文本编辑器中,它可以通过正则表达式搜索来搜索/替换
\x{2212}
。感谢兄弟。它可以工作:)更准确地说,它是Unicode代码点U+2212()。在大多数文本编辑器中,它可以通过正则表达式搜索来搜索/替换
\x{2212}
。它实际上不是一个副本。真正的副本是规范的。更直接的分析是342 210 222(八进制)→ 0xE2 0x88 0x92(十六进制)→ Unicode代码点U+2212()的UTF-8序列。它实际上不是一个副本。真正的副本是规范的。更直接的分析是342 210 222(八进制)→ 0xE2 0x88 0x92(十六进制)→ Unicode代码点U+2212()的UTF-8序列。