簡體   English   中英

在Linux上的C ++中的無限循環中捕獲內存不足錯誤bad_alloc()

[英]catching an error for insufficient memory bad_alloc() in an infinite loop in C++ on linux

所以我有一個無限循環,里面有一個fstream,看起來或多或少像這樣:

int main(){
    while(1){
    StringData() 
    //above is a function with fstream that writes data into a new file    
    return 0;
}

CSV文件寫在USB記憶棒上。 我想預見到該程序將超出USB記憶棒的存儲容量,並捕獲將發生的錯誤。

我在某處讀到它會在發生時拋出bad_alloc() ,我的想法是為循環添加try()catch() ,並在錯誤出現時完全退出程序。

我什至不知道這是否是確切的錯誤。 有人可以幫我解決這個異常嗎?

謝謝,祝你好!

在這種情況下,USB記憶棒將被視為磁盤,因此會因空間不足錯誤而不是內存而失敗。

當fstream無法再向磁盤寫入任何內容時,它將拋出std :: ifstream :: failure。 (由異常掩碼控制)。

暫無
暫無

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

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