原创 關於linux操作系統的交換機在運行過程中可能掛起幾秒的時間的調試方法

問題描述:在軟件啓動過程中,某個線程與其他線程會有數據交互,在代碼中會有線程中相互的鎖的操作,然後呢此線程在測試過程中發現整個線程會突然掛起幾秒什麼事情也不幹的現象。由於接口是客戶提供,調試比較困難,這邊提供一些調試後的總結和方法; 1.

原创 簡單讀懂正則表達式

  正則表達式中的括號: () 是爲了提取匹配的字符串。表達式中有幾個()就有幾個相應的匹配字符串。(\s*)表示連續空格的字符串。 []是定義匹配的字符範圍。比如 [a-zA-Z0-9] 表示相應位置的字符要匹配英文字符和數字。[\s*

原创 怎樣退出vim或者vi

點擊ESC進入“正常模式”,然後輸入“:”,進入“命令模式”。此時屏幕的下方會出現一個冒號,你可以輸入以下命令,並按“ENTER”執行: :q ,退出(:quit的縮寫) :q!,退出且不保存(:quit!的縮寫) :wq,保存並退出 :

原创 段錯誤的簡單調試方法

段錯誤如果是自己書寫代碼的時候寫出來的段錯誤對於比較熟悉c語言的開發者來說,自己立馬能夠意識到段錯誤位置。但是平常或者剛剛開始學習的人則不太好調試段錯誤; 這邊說一種比較笨但是好用的辦法調試段錯誤,如果是自己寫出來的,可以採用打印加延時的

原创 msgget返回值爲0

其實msgget的返回值只要不是-1都是沒有問題的,當之前沒有人使用過msgget的時候返回的可能是0,但是這個0是合法的消息隊列id,假如再次調用msgget的話就不是0了,而是另一個值。

原创 組播報文上交換機cpu卻不被socket接收的問題;socket怎樣接收不同vlan的組播的問題;

在交換機的測試過程中發現一個問題,組播報文可以通過交換芯片發送到cpu,但是cpu的socket卻不接收此組播報文,由於想要接收的組播報文來自不同的vlan,帶有不同的vlan標籤,所以一直排查不到問題。 1. 下面就是這個問題的原因:在

原创 genirq:Setting trigger mode 2 for irq 49 failed (mvebu_gpio_irq_set_type+0x0/0x104)

這個錯誤的發生原因是: 有兩個地方對同一個gpio進行了操作,尤其是將gpio修改爲edge模式的那個gpio,和其他模式的gpio產生了衝突; 問題的函數調用鏈: gpio_edge_store() gpio_setup_irq() r

原创 python thinter無法顯示圖片的問題

1.確認圖片的格式爲png格式; 2.確認操作是在class中操作的; 3.記得使用變量的時候使用self.img 例如: impot tkinter as tk class App:     def __init__(self,mast

原创 空格的正則表達式

在正則表達式想使用空格的時候不能採用\s的方法,因爲\s指的是空白,就是所有空白。 如果想表示單純的空格的話可以採用:[ ] 方括號本身就是匹配其中的字符,那麼其中放空格就是匹配空格; 如果有其他正則表達式問題可以查看:https://b

原创 sony 刷機軟件, 刷機教程,固件下載,谷歌全家桶卸載,等問題總結

這邊說兩個事情; 第一個是日版的sony z5c不能刷港版或者其他版本,本身就是有問題的,日版只能刷日版的。 第二個就是如果想要卸載谷歌全家桶,可以採用adb的方式直接adb命令行卸載軟件具體操作如下: https://download.

原创 c語言實現,一定數量一定範圍內的整數相加總和相等的整數數列

實現方法採用回調函數的方式實現,模仿模型爲密碼破解的方法,在產生的結果中,會有一些是重複的,可以採用文件的方式去掉重複即可,這邊只實現產生所以可能性的方法。 代碼如下: #include "stdio.h" #define NUMB

原创 關於單片機定時器不夠用的問題解決方法

在剛開始學習單片機的時候,那時候由於簡單的51單片機資源比較少所以一直就覺得單片機的定時器資源不夠用。 在深度學習各種知識後發現其實很多情況下並不需要那麼多定時器。 那麼解決方法是啥呢? 方法就是:定時器複用 定時器複用指的是,比如你需要

原创 linuxc mkstemp函數使用和注意事項

函數使用如下: void tempFileDeal() {     int fd = 0;     char buf[128] = "temp-XXXXXX";     if((fd = mkstemp(buf)) < 0)

原创 大型程序的段錯誤或者無法定位的問題梳理方式

實際項目操作過程中有的段錯誤會無法定位,因爲程序太多。不好確定位置,這時候我們可以採用拆分的方式, 1.將各個進程拆分,然後單獨運行某個進程,然後依次增多,確認問題出在哪個進程; 2.拆分進程中的線程,單獨運行線程,確認問題所在的線程;

原创 linux發送組播報文的socket創建和setsockopt配置

在軟件設計過程中可能需要發送某個組播或者廣播報文,利用指定的ip地址。以下爲此代碼的實例: #define SOCKET_INIT    -1 #define DEST_IP  "239.194.0.18" int localIpA