Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.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++ Linux中带分段错误的poll()系统调用核心转储_C++_C_Linux - Fatal编程技术网

C++ Linux中带分段错误的poll()系统调用核心转储

C++ Linux中带分段错误的poll()系统调用核心转储,c++,c,linux,C++,C,Linux,我在轮询系统调用中遇到分段错误,并转储以下代码的核心 wait_time(int wait_time) { struct pollfd fds; poll(&fds, 0, wait_time); } 从其他功能 void xyz() { int a=0; if (a==2) { wait_time(3); a=0; } a++; //something else i am doi

我在轮询系统调用中遇到分段错误,并转储以下代码的核心

wait_time(int wait_time)
 {
   struct pollfd fds;

   poll(&fds, 0, wait_time);

 }
从其他功能

void xyz()
{
    int a=0;
    if (a==2) {
          wait_time(3);
          a=0;
     }
     a++;
     //something else i am doing
 }

main()
{
      while(1)
      {
          xyz();
      } 

}

如何解决轮询系统调用时的核心转储问题?

下面的解决方案很好

wait_time(int wait_time)
{
    poll(NULL, 0, wait_time);
}

如果您只是想将该函数用作sleep函数,那么为什么不直接将NULL作为第一个参数传递呢?此外,还有其他更适合睡眠的方法将进程暂停指定时间,例如,您是否尝试过传递NULL而不是&fds?或者,您可以将fds.fd设置为负值以使函数调用忽略它。在修复上述代码中的小错误和警告后,添加include,等等,它在我的Linux机器上运行得非常好。作为32位和64位可执行文件。这似乎表明问题出在我正在做的其他事情上,或者类似的事情上。我们需要足够的代码来复制这个问题。错误最有可能出现在未显示的代码中。