原创 特殊進程

1、孤兒進程(子進程沒有結束,父進程結束了,子進程就成了孤兒,被init進程收養) 2、殭屍進程(進程結束後,操作系統會保留其退出狀態,進程號等信息,並放回給其父進程。父進程通過調用wait函數獲取或忽略這些信息,並銷燬這些信息

原创 嵌入式學習29(自實現ls -l)

我們已經會遍歷文件夾,並會用stat獲得文件夾中個文件的信息了,那麼如何將其轉化爲,ll命令下我們能很方便識別的內容呢。 首先要了解stat的的成員st_mode,它是一個6位八進制數,也就是一個18位的二進制數。

原创 exec族函數用法(轉載)

本節目標: exec替換進程映像exec關聯函數組(execl、execlp、execle、execv、execvp) 一,exec替換進程映像 在進程的創建上Unix採用了一個獨特的方法,它將進程創建與加載一個新進程映象分

原创 共享內存代碼

#include <stdio.h> #include <sys/ipc.h> #include <sys/shm.h> #include <string.h> #include <unistd.h> #include <stdl

原创 解決colab 無法imshow顯示圖像和視頻

最近在做視頻分析,電腦太爛,想用免費colab跑,但是colab上確無法像jupyter notebook那樣正常使用cv2.imshow(),找了一些經實驗有效的解決方案 #顯示圖片法一:用plt import matplotlib.p

原创 線程

線程:進程中的一條執行路徑。 在單CPU系統上,多個線程併發執行。 線程(thread):一個進程可以有多個線程,必須至少有一個線程(即主線程,主函數由主線程執行) TID:線程ID (一個程序做多個事情,一個線程相當於一

原创 進程間通信

通信方式: 1.單工通信 2.半雙工通信 3.全雙工通信 IPC(Inter-Process Communication):進程間通信 原因:每個進程都擁有自己獨立的私有地址空間,相互之間不能訪問。 實現方法: 1、信號

原创 wait() waitpid()

進程一旦調用了wait,就立即阻塞自己,由wait自動分析是否當前進程的某個子進程已經退出,如果讓它找到了這樣一個已經變成殭屍的子進程,wait就會收集這個子進程的信息,並把它徹底銷燬後返回;如果沒有找到這樣一個子進程,wait就會一直

原创 fork()函數

函數原型:pid_t fork(void); system,popen,exec都是通過運行指定進程,含路徑 fork沒有參數,是賦制進程,子進程和父進程執行位置和執行狀態都一樣。 fork:創建一個子程序,子進程執行當前程序

原创 段錯誤調試

核心轉儲core dumped 概念:當⼀個進程要異常終止時,可以選擇把進程的用戶空間內存數據全部保存到磁盤上,文件名通常是core,這叫做Core Dump。也叫核心轉儲,幫助開發者進行調試,在程序崩潰時把內存數據dump到硬盤上,

原创 信號

1、信號的種類 命令:kill -l (62個) 2、信號的來源:軟件、硬件 SIGINT(2號):Ctrl + C Ctrl+\(3號) :SIGQUIT SIGINT的默認處理動作是終止進程,而

原创 嵌入式學習28(linux系統函數之文件、文件夾管理相關函數)

步入linux系統函數的學習了,隨時隨地都要man一下,忌死記。 linux系統調用:即linux操作系統提供的函數,只能用於linux。 命令就是一些函數 1)文件系統管理相關的系統調用 文件相關操作 file:存放在

原创 在一個程序中執行另一個程序的方法

程序:可執行文件。 進程(process):正在運行的程序,或程序的一次執行過程。 軟件:程序+文檔 現代操作系統都是多任務和多用戶的。 在一個程序中執行另一個程序的方法 1、system函數 int system(co

原创 共享內存相關函數

大多數共享內存的具體實現,都是把由不同進程之間共享的內存映射爲同一段物理內存。 多個進程都把該物理內存區域映射到自己的虛擬地址空間,這些進程就都可以直接訪問該共享內存區域,從而可以通過該區域進行通信。 共享內存允許兩個不相關的進程

原创 線程同步(多線程協同使用有限資源)

1)互斥量(mutex) 全局變量:pthread_mutex_t m;//定義互斥量 主函數: pthread_mutex_init(&m,NULL);//初始化 ……操作……