C++標準(ISO/IEC 14882)強制要求main函數返回類型為int:
int main() { ... } // 標準
int main(int argc, char* argv[]) { ... } // 標準帶參數
// string main() { ... } // 編譯錯誤
| 方案 | 適用場景 | 示例 |
|---|---|---|
| 標準輸出 | 簡單文本傳遞 | cout << "hello"; 父進程讀stdout |
| 文件寫入 | 結構化/大數據 | ofstream("result.txt") << json; |
| 共享內存 | 高性能、同機多進程 | Boost.Interprocess / mmap |
| Socket/管道 | 網絡/跨語言 | TCP/Unix Domain Socket |
| 退出碼+約定 | 狀態碼擴展 | 約定:0成功,1參數錯,2IO錯...配合標準輸出 |
int main() {
try {
string result = doWork();
cout << result; // 輸出業務結果
return 0; // 成功退出碼
} catch (exception& e) {
cerr << e.what(); // 錯誤輸出到stderr
return 1; // 失敗退出碼
}
}
父進程(Python/Shell/Java)可通過subprocess.run(capture_output=True)同時獲取輸出文本與退出碼。