實際項目操作過程中有的段錯誤會無法定位,因爲程序太多。不好確定位置,這時候我們可以採用拆分的方式,
1.將各個進程拆分,然後單獨運行某個進程,然後依次增多,確認問題出在哪個進程;
2.拆分進程中的線程,單獨運行線程,確認問題所在的線程;
3.拆分消息隊列和socket,確認問題所在;
通過這種拆分方式雖然會花費一些時間,但是總歸會查找到問題所在;
實際項目操作過程中有的段錯誤會無法定位,因爲程序太多。不好確定位置,這時候我們可以採用拆分的方式,
1.將各個進程拆分,然後單獨運行某個進程,然後依次增多,確認問題出在哪個進程;
2.拆分進程中的線程,單獨運行線程,確認問題所在的線程;
3.拆分消息隊列和socket,確認問題所在;
通過這種拆分方式雖然會花費一些時間,但是總歸會查找到問題所在;
其實msgget的返回值只要不是-1都是沒有問題的,當之前沒有人使用過msgget的時候返回的可能是0,但是這個0是合法的消息隊列id,假如再次調用msgget的話就不是0了,而是另一個值。
函數使用如下: void tempFileDeal() { int fd = 0; char buf[128] = "temp-XXXXXX"; if((fd = mkstemp(buf)) < 0)