簡體   English   中英

我可以在 mac 上使用 C++ 獲得 -1 退出代碼嗎?

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

我只是想知道是否有可能在 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

status 的值可以是0EXIT_SUCCESSEXIT_FAILURE或任何其他值,但只有最低有效的 8 位(即status & 0377 )可以從wait()waitpid() 完整值應可從waitid()和傳遞給SIGCHLD的信號處理程序的siginfo_t獲得。

因此,當它使用某些 POSIX API 來管理其子項時,是 shell 程序將值縮小到 8 位。

看來這個問題實際上是 OpenCV 代碼的一個錯誤。 該錯誤已被解決並推送到OpenCV github的 master 分支

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM