[英]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 的值可以是
0
、EXIT_SUCCESS
、EXIT_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.