原创 Linux 進程管理命令

Linux 進程管理 命令:&   ==>將命令放在後臺執行     #cp src_file dest_file &   命令:jobs ==>

原创 sizeof 操作符詳解

1、定義sizeof是C語言的一種單目操作符,它並不是函數。sizeof操作符以字節形式給出了其操作數所佔存儲空間的大小。操作數可以是一個表達式或括在括號內的類型名。操作數所佔存儲空間的大小由操作數的類型決定。作用就是返回一個對象或者類型

原创 線程同步

線程同步 互斥量:從本質上是一把鎖,在訪問共享資源前對互斥量加鎖,在訪問完後解鎖,對互斥量加鎖後任何其他試圖再次對其加鎖都會被阻塞,知道當前線程對互斥量解鎖。 互斥量初始化 1)靜態初始化 將互斥量設置爲PTHREAD_MUTEX_INI

原创 排序算法(一)

冒泡排序 基本思想: 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。 冒泡排序的示

原创 poll函數

函數原型 #include<poll.h> int poll(struct pollfd fdarray[],nfds_t nfds, int timeout); 返回值:準備就緒的描述符數目;若是超時,返回0;若是出錯,返回-1

原创 排序算法(二)

歸併排序 基本思想: 歸併(Merge)排序法是將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分爲若干個子序列,每個子序列是有序的。然後再把有序子序列合併爲整體有序序列。 歸併排序示例: 算法實現 void mer

原创 c++的引

引用簡介   引用就是某一變量(目標)的一個別名,對引用的操作與對變量直接操作完全一樣。   引用的聲明方法:類型標識符 &引用名=目標變量名;   【例1】:int a; int &ra=a; //定義引用ra,它是變量a的引用,即別名

原创 進程間通信之管道和FIFO

管道 管道是進程通信的手段之一,管道實際上只存在內存的文件,對這個文件的操作是通過兩個打開的文件描述符, 它們分別代表管道的兩端,管道是一種特殊的文

原创 線程私有數據

線程私有數據 創建私有數據之前得先創建一個鍵,需要創建與該數據相關聯的鍵 #include<pthread.h> int pthread_key_create(pthread_key_t *keyp, void (*destructor)

原创 消息隊列操作函數

消息隊列操作函數 1、概述   消息隊列可以認爲是一個消息鏈表,System V 消息隊列使用消息隊列標識符標識。具有足夠特權的任何進程都可以往一個

原创 const的用法

const 的用法 修飾變量類型const int bufSize = 512; //任何對bufSize進行賦值的操作都是錯誤的。     const int j = get_num(); //因爲const對象一旦創建就不能改變,所以

原创 共享存儲函數

共享存儲 共享存儲允許兩個或多個進程共享一個給定的存儲區。數據不需要在客戶進程 和服務器進程之間複製,因此這是最快的一種進程間通信的方式。使用的竅門

原创 VIM 使用技巧

VIM 使用技巧 1)刪除空行 ==>:g/^$/d 2)替換:     用字符串 str2 替換正文中所有出現的字符串 str1 ==>:1,$

原创 Select 函數

函數允許進程指示內核等待多個事件中的任何一個發生,並只在有一個或多個事件發生或經歷一段指定的時間後才喚醒它。 函數說明 #include<sys/select.h> #include<sys/time.h> int select(int

原创 線程私有數據實現的原理

       在維護每個線程的私有數據的時候,我們可能會想到分配一個保存線程數據的數組,用線程的ID作爲數組的索引來實現訪問,但是有一個問題是系統生成的線程ID不能保證是一個小而連續的整數,並且用數組實現的時候由於其他線程也可以訪問其數