正則表達式萌芽於1940年代的神經生理學研究,由著名數學家Stephen Kleene第一個正式描述。具體地說,Kleene歸納了前述的神經生理學研究,在一篇題為《正則集代數》的論文中定義了“正則集”,並在其上定
主要是虛擬機中安裝CentOS每次總會做一些設置,記錄下來方便以後。純粹基本設置,比如本地SecureCRT可以連接虛擬機中的CentOS。復雜的非基本設置見:Linux 命令集錦 設置網絡自動連接#cat /etc/sysc
啟動引導程序配置文件LILO /etc/lilo.confGRUB /boot/grub/menu.lst系統啟動文件核腳本主啟動控制文件 /etc/inittabSysV啟動腳本的位置 /etc/init.d、/etc/rc.d/in
1. core文件的簡單介紹在一個程序崩潰時,它一般會在指定目錄下生成一個core文件。core文件僅僅是一個內存映象(同時加上調試信息),主要是用來調試的。2. 開啟或關閉core文件的生成用以下命令來阻止系統生成core文件:uli
程序簡介:在Unix環境下,我們可以讓程序屏蔽掉某些信號(SIGKILL信號和SIGSTOP除外),這個例子演示了這方面的功能。//《APUE》程序10-11:信號處理和sigprocmask實例 #include <unistd
信號狀態:信號的”未決“是一種狀態,指的是從信號的產生到信號被處理前的這一段時間;信號的”阻塞“是一個開關動作,指的是阻止信號被處理,但不是阻止信號產生。 APUE例題在sleep前用si
在多線程操作系統中,各個系統的實現方式並不相同。在有的系統中實現了用戶級線程,有的系統中實現了內核級線程 1.內核級線程: (1)線程的創建、撤銷和切換等,都需要內核直接實現,即內核了解每一個作為可調度實體的線程。(2)這些線程可以在全
孤兒進程: 即一個其父進程已經終止的進程。 孤兒進程由 init 進程“收養”,init 進程ID為1,因此被收養的孤兒進程的父進程便更新為1。孤兒進程組: 一個進程組中的所有進程的父進程要麼是該進程組的一個進程
fcntl有強大的功能,它能夠復制一個現有的描述符,獲得/設置文件描述符標記,獲得/設置文件狀態標記,獲得/設置異步I/O所有權,獲得/設置紀錄鎖。當多個用戶共同使用,操作一個文件的情況,Linux通常采用的方法就是給文件上鎖,來避免共
在讀apue的時候,共享存儲區的講解並沒用實例,為此自己寫了一個小程序,程序粗創建子進程,由子進程從終端接收字符串存入共享區,父進程從共享區讀出字符串並輸出。同時,父子進程均輸出各自的共享區的地址區間區間。#include "
迭代服務器比較原始,它的原型可以描述成: while(1) { new_fd = 服務器accept客戶端的連接(new_fd = accept(listenfd, XX, XX)) 邏輯處理 在這個new_fd上給客戶端發送消息 關閉
我們用這個程序和輸出結果分析一下waitpid的用法和特點。我們將waitpid設置成WNOHANG非阻塞父進程狀態;第一次調用waitpid時:此時尚未有子進程,所以waitpid出錯,返回-1;第二次調用waitpid時:此時有子進
輕量級進程和普通進程的區別在於:前者沒有獨立的用戶空間(內核態線程無用戶空間,用戶態線程共享用戶空間),而普通進程有獨立的內存空間;表現在數據結構上:線程的mm=null或者與其他線程共享,而進程有獨立的mm_struct。
Linux 之所以能支持除了Ext2文件系統之外的各種文件系統,是因為Linux提供了一種統一的框架,就是所謂的虛擬文件系統轉換(Virtual FilesystemSwitch),簡稱虛擬文件系統(VFS)。這樣, 用戶程序可以通過同
VFS采用的是面向對象的設計思想,使用一簇數據結構來代表通用文件對象。所有內核中的數據結構都使用C結構體實現。1.superblock(超級塊)對象保存一個掛在的文件系統的相關信息(Stores information&nbs
Linux支持在不同進程間共享打開文件。為了說明文件共享,先來說明內核用於所有I/O的數據結構。 他們之間的關系決定了在文件共享方面一個進程對另一個進程可能產生的影響。 0.1和文件有關的對象 (1) inode(i
1. 內核中提高I/O性能的新方法epoll epoll是什麼?按照man手冊的說法:是為處理大批量句柄而作了改進的poll。要使用epoll只需要這三個系統調 用:epoll_create(2), epo
我們知道著兩個函數都提供每次輸入一行的功能。然而gets是一個不推薦使用的函數,其原因是使用gets不能指定緩沖區的長度,這樣就可能造成緩沖區的溢出。除了gets只能操作標准輸入(stdin)外,gets和fgets還有另一
在Linux內核中等待隊列有很多用途,可用於中斷處理、進程同步及定時。我們在這裡只說,進程經常必須等待某些事件的發生。等待隊列實現了在事件上的條件等待: 希望等待特定事件的進程把自己放進合適的等待隊列,並放棄控制全。因此,等待