我可以在 Mac 上使用 C++ 获得 -1 退出代码吗?

Can I get a -1 exit code using C++ on mac?

本文关键字:退出 代码 获得 C++ Mac 我可以      更新时间:2023-10-16

我只是想知道是否可以在 Unix 系统上C++中获取一个函数以返回 -1 而不是 255?

我一直在编写一些OpenCV的东西,并意识到这些东西没有按预期工作。我使用的函数旨在返回 -1,但一直返回 255。所以我只是想知道我是否可以做任何配置来允许返回代码 -1?

这是我在教科书中使用的示例

int main( int argc, char** argv ) {
  int i = 0;
  cv::namedWindow( "Example3", cv::WINDOW_AUTOSIZE );
  cv::VideoCapture cap;
  cap.open( std::string(argv[1]) );
  cv::Mat frame;
  for(;;) {
    cap >> frame;
    if( frame.empty() ) break; // Ran out of film
    cv::imshow( "Example3", frame );
    std::cout<<"waitkey:"<<cv::waitKey(33) << std::endl;
  }
  return -1;
}

有关waitkey()的信息可以在这里找到

POSIX 说,

状态值可以是0EXIT_SUCCESSEXIT_FAILURE或任何其他值,但只有最不重要的8位(即status & 0377)可以从wait()waitpid()获得;完整的值应该从waitid()和传递给信号处理程序SIGCHLDsiginfo_t中可用。

因此,它是 shell 程序在使用某些 POSIX API 管理其子级时将值缩小到 8 位。

似乎这个问题实际上是OpenCV代码的错误。该错误已得到解决,并推送到 OpenCV github 的主分支。

相关文章: