原创 管道-無名管道
管道(pipe)概述:(怎樣使用管道實現父子進程間通信)不相關的兩個進程無法通過無名管道進行進程間通信。管道又稱無名管道(沒有名字),無名管道是一種特殊類型的文件,在應用層體現爲兩個打開的文件描述符。管道是最古老的UNIX IPC方式,其
原创 聊天軟件-管道實現
carie和vally之間的對話talk_carie.c如下:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include
原创 exit和vfork
在linux中,可以用以下函數結束正在運行的進程。>> exit函數—庫函數#include <stdlib.h>void exit(int value);參數:value是返回給父進程的參數,低8位有效。>> _exit函數—系統調用#
原创 進程控制塊和進程號
進程控制塊PCB - process control block進程號pid唯一的標識了一個進程。>> OS是根據PCB來對併發執行的進程進行控制和管理的。系統在創建一個進程的時候會開闢一段內存空間存放與此進程相關的PCB數據結構。>>
原创 setenv,printenv,export
1、改變或添加環境變量 相關函數:setenv,getenv,putenv,unsetenv 通過setenv不能添加或修改shell進程的環境變量。即:通過setenv設置的環境變量只在本進程,而且是本次執行中有效。在csh環境下可以用
原创 Flash磨損均衡技術解析(wear-leveling)
1、命令的傳輸傳輸層接收到來自於應用層的命令請求後,根據命令的不同將相關寄存器中的信息按照SATA標準協議規定的格式封裝爲FIS傳遞給數據鏈路層。當數據鏈路層成功接收後,向傳輸層反饋一個傳輸完成的狀態標誌。傳輸層接收到來自數據鏈路層的FI
原创 進程創建-fork
fork函數:創建一個新進程,需要包含下面的頭文件 #include <sys/types.h> #include <unistd.h> pid_t fork(void); 功能:fork()函數用於從一個已存在的進程中創建一個新進程,
原创 fcntl函數
編程時可通過fcntl函數設置文件的阻塞特性。設置爲阻塞:fcntl(fd,F_SETFL,0);設置爲非阻塞:fcntl(fd,F_SETFL,O_NONBLOCK);fcntl -- manipulate file descripto
原创 等待子進程結束wait()和waitpid()
父子進程有時需要簡單的進程間同步,如父進程等待子進程的結束。linux提供了以下兩個等待函數:wait(),waitpid().需要包含頭文件:#include <sys/types.h>#include <sys/wait.h>1)
原创 IPC和Kill
進程間通信(IPC:Inter Processes Communication) 進程是一個獨立的資源分配單元,不同進程(通常指用戶進程)之間的資源是獨立的,沒有關聯。 不能在一個進程中直接訪問另一個進程的資源(例如打開的文件描述符) 進
原创 孤兒進程和殭屍進程
1)孤兒進程(Orphan Process):父進程已亡,即父進程運行結束,但是子進程未結束的進程。孤兒進程的父進程是1號進程-即init進程。父進程死亡之後終端釋放。此時不能用ctrl-c結束進程。#include <sys/wait.
原创 linux-目錄含義
在linux下,所有的設備都被抽象爲文件。 1)/dev 目錄下,設備 Cdrom是光驅,fb是軟盤(floppy disk),sda是硬盤,tty是終端 2)/etc 目錄下,配置信息 保存所有的配置文件,大都是純文本文件,.conf結
原创 anaconda的使用
1、 雙擊安裝Anaconda3-2.5.0-windows-x86-64.exe,不需要管理員權限。 安裝完成後,就你要處理的excel文件放在reg_creator文件夾下,在內網D盤。 2、 Anaconda3 -> Spyde
原创 複製文件描述符dup和dup2
文件描述符的複製:dup和dup2是兩個非常有用的系統調用,都是用來複制一個文件的描述符,使新的文件描述符也標識舊的文件描述符所標識的文件。>> int dup(int oldfd);>> int dup2(int oldfd,int n
原创 管道-命名管道(FIFO)
命名管道(FIFO)和管道(pipe)基本相同,但也有一些不同的地方:1)FIFO在文件系統中作爲一個特殊的文件而存在,但FIFO中的內容卻存放在內存中。(某個目錄下有一個文件名)2)當使用FIFO的進程退出後,FIFO文件將繼續保存在文