Time of Update: 2018-12-04
/**用fork複製一個新的進程*/void fork_progress(){pid_t result;result = fork(); /*調用fork函數,傳回值存在變數result中*/int newret;if(result == -1) /*通過result的值來判斷fork函數的返回情況,這麼先進行出錯處理*/{perror("建立子進程失敗!");exit;}else if(result==0) //傳回值為0代表子進程{printf("傳回值是:%d,說明這是子進程!\n
Time of Update: 2018-12-04
/* *利用具名管道建立簡單的聊天程式 */#include <stdio.h>#include <fcntl.h>#include <string.h>#include <stdlib.h>#include <sys/select.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>int main(){ int
Time of Update: 2018-12-04
http://blog.chinaunix.net/u2/66903/showart_1902477.html 1、關於tr 通過使用 tr,您可以非常容易地實現 sed 的許多最準系統。您可以將 tr 看作為 sed 的(極其)簡化的變體:它可以用一個字元來替換另一個字元,或者可以完全除去一些字元。您也可以用它來除去重複字元。這就是所有 tr 所能夠做的。
Time of Update: 2018-12-04
首先,使用epoll_create建立一個控制代碼: g_epollFd = epoll_create(MAX_EVENTS); 定義一個結構:typedef struct send_event { int fdRecv; struct sockaddr_in RecvAddr;} Recv_Event; 使用epoll_ctl將Udp控制代碼加入到epoll:Recv_Event *pEvent =
Time of Update: 2018-12-04
1)編譯應用程式make -f makefile_5_2 cleanmake -f makefile_5_2 2)關於共用目錄在linux虛擬機器的/mnt/hgfs下可看到該檔案夾 3)cd命令,進入檔案夾cd /mnt/hgfs/ 4)複製cp命令cp -ri A/B/* A1/B1/ 提示是否覆蓋\cp -rf A/B/* A1/B1/ 不提示直接覆蓋 5)linux關機shutdown -h now 6)建立目錄mkdir mkdir
Time of Update: 2018-12-04
如果你對核心驅動模組一無所知,請先學習核心驅動模組的基礎知識。如果你已經入門了核心驅動模組,但是仍感覺有些模糊,不能從整體來瞭解一個核心驅動模組的結構,請賞讀一下這篇拙文。如果你已經從事核心模組編程N年,並且道行高深,也請不吝賜教一下文中的疏漏錯誤。 本文中我將實現一個簡單的Linux字元裝置,旨在大致勾勒出linux核心模組的編寫方法的輪廓。其中重點介紹ioctl的用途。我把這個簡單的Linux字元裝置模組命名為hello_mod.裝置類型名為hello_class裝置名稱為hello 該裝置
Time of Update: 2018-12-04
本文作者:sodme本文出處:http://blog.csdn.net/sodme聲明:本文可以不經作者同意任意轉載、複製、傳播,但任何對本文的引用均須保留本文的作者、出處及本行聲明資訊!謝謝!前段時間作效能最佳化時, 研究過一段時間的linux AT&T asm, 一點體會寫出來與大家共用.我們知道linux的asm採用的是AT&T彙編文法,
Time of Update: 2018-12-04
#include <unistd.h> /*檔案預先處理,包含chmod函數庫*/#include <sys/stat.h> /*檔案預先處理,包含chmod函數庫*/#include <stdio.h>int main(int argc,char *argv[]){ struct stat buf; /*檔案的各種屬性,如檔案類型,許可權,以及建立時間,大小等其它屬性*/ if(argc!=2) { printf("
Time of Update: 2018-12-04
/****使用execve啟動一個進程,*int execve(const char* path,char *const argv[],...,char *const envp[]);函數原型***/#include <unistd.h>#include <stdio.h>void create_progress(){char *args[]={"/usr/bin/vim",NULL};printf("系統分配的進程號(pid)是:%d\n",getpid());
Time of Update: 2018-12-04
如何定製Linux作業系統安裝盤詳解 本文詳細介紹如何定製Linux作業系統安裝盤詳解 本文闡述如何以一個現有的 RedHat Linux系統安裝盤為藍本,定製符合需要的 Linux 系統安裝盤。 1
Time of Update: 2018-12-04
linux上進程有5種狀態: 1. 運行(正在運行或在運行隊列中等待) 2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號) 3. 不可中斷(收到訊號不喚醒和不可運行, 進程必須等待直到有中斷髮生) 4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放) 5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU訊號後停止運行運行) ps工具標識進程的5種狀態代碼: D 不可中斷 uninterruptible sleep
Time of Update: 2018-12-04
Linux的核心源碼都會包含檔案linux/compile.h,所以先分析該檔案內的內容,作為開篇。 1 彙編編譯時間不定義的內容 該檔案的第一個內容是對宏__ASSEMBLY__的判斷,這個宏的作用是避免在進行彙編編譯的時候,不定義後續相關內容。這個宏通過在編譯器中用-D選項中加入,參數AFLAGS也包含該宏定義。在彙編時編譯器會定義__ASSEMBLY__為1。 #ifndef __ASSEMBLY__ 1.1 Sparse工具檢測使用的屬性定義
Time of Update: 2018-12-04
sort是在Linux裡非常常用的一個命令,管排序的,集中精力,五分鐘搞定sort,現在開始! 1 sort的工作原理 sort將檔案的每一行作為一個單位,相互比較,比較原則是從首字元向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。 [rocrocket@rocrocket programming]$ cat seq.txt banana apple pear orange [rocrocket@rocrocket programming]$ sort seq.txt
Time of Update: 2018-12-04
Linux編程環境時間日期類型timeval 及其相關API “時間”和“日期”的概念,主要有以下幾個: Coordinated Universal Time(UTC):國際標準時間,又稱為世界標準時間,也就是大家所熟知的格林威治標準時間(Greenwich Mean Time,GMT)。比如,中國內地的時間與UTC的時差為+8,也就是UTC+8。美國是UTC-5。 Calendar
Time of Update: 2018-12-04
在《調諧LINUX網路效能之調試工具篇》中,我們介紹了route、netstat、tcpdump三種網路調諧測試載入器的使用方法及其可實現的功能。本文我們將著重介紹網路設定檔的內容,幫您讀懂這些檔案。/etc/modules.conf 檔案
Time of Update: 2018-12-04
Linux 核心鏈表移植我參考網上的文章修改了移植後的Linux核心的雙向鏈表和HASH鏈表, 使之適用於Linux和Windows平台. 可以在使用者態下使用. 任何後果, 本人概不負責!下面是全部代碼:/** * dhlist.h * - deque list and hash list from Linux Kernel * * from Linux Kernel * for Windows and Linux * * modified by cheungmine * 2013-4 *
Time of Update: 2018-12-04
一個不斷提出的問題:Linux下JDK到底應該安裝在哪兒?1 Linux 目錄結構即使這是個菜鳥級的問題,也經常難住老鳥。我就見過很資深的程式員把JDK不合適地安裝到/home目錄下。雖然不一定有最正確的安裝位置,但一定有不適當的安裝位置。為了確定我們到底應該把JDK安裝在哪裡,首先要瞭解一下Unix/Linux的目錄結構。/bin 用來貯存使用者命令。/usr/bin 也被用來貯存使用者命令。/sbin 許多系統命令(例如 shutdown)的貯存位置。/usr/sbin
Time of Update: 2018-12-04
調試網路程式時,通常需要抓包分析。Linux下的tcpdump就很好。Ubuntu下預設已經安裝。下面先舉個實際的例子.比如我有一個C++程式監聽本地連接埠8889, 另一個newlisp程式通過TCP和其通訊。首先可以檢查一下有幾個網路介面。root@dean-GA-MA790XT-UD4P:~# tcpdump -D1.eth02.any (Pseudo-device that captures on all
Time of Update: 2018-12-04
scripts/kconfig/lxdialog/dialog.h:32:20: 錯誤: curses.h:No such file or directoryIn file included from scripts/kconfig/lxdialog/checklist.c:24:scripts/kconfig/lxdialog/dialog.h:97: 錯誤: expected specifier-qualifier-list before
Time of Update: 2018-12-04
虛擬機器下的linux如果不設定解析度就全屏沒什麼效果,還是那麼小。所以要先改解析度。最簡單的辦法就是不用命令改系統---->喜好設定----->顯示器注意的是,如果改成最大的那個解析度就不能更改回來,因為找不到顯示器,這時候就得全屏了如果用命令就有如下方法,但是現在還沒完全搞懂,只能在以後的學習中慢慢瞭解了。 方法1:到/etc/X11,開啟xorg.conf,找到最後類似以下一節: Section "Screen" Identifier "Screen0"