Time of Update: 2018-12-05
shmctlshmctl 刪除共用記憶體: int shmctl( int shmid , int cmd , struct shmid_ds *buf ); int shmid:是共用記憶體的ID。 int cmd: 是控制命令,可取值如下: IPC_STAT 得到共用記憶體的狀態, IPC_SET 改變共用記憶體的狀態 IPC_RMID 刪除共用記憶體 struct shmid_ds
Time of Update: 2018-12-05
昨晚分析了poll,通過代碼的閱讀可以發現,poll操作有很多可以最佳化的地方。epoll是eventpoll的簡稱,他的效率是非常高的,我們今天來看看他的實現。他的實現在FS/Eventpoll.c,代碼有1500多行,呵呵,怕了吧。大家都知道,epoll有三個系統調用,C庫封裝成以下三個:1. int epoll_create(int size);2. int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);3
Time of Update: 2018-12-05
fread函數和fwrite函數 size_t fread(void *buffer, size_t size, size_t count, FILE *fp)從檔案fp中讀入count次,每次讀size位元組,讀入的資訊存在buffer指標指向的緩衝區。函數傳回值等於實際讀入的次數(可能少於count)。 size_t fwrite(void *buffer, size_t size, size_t count, FILE
Time of Update: 2018-12-05
package com.huang.algorithms;public class Test {/** * @param args */public static char[] c;public static boolean isNum(char c){int i = (int)c;//ascii '1' 49 '9' 57if(i >= 49 && i <= 57){return true;}else{return false;}}public static
Time of Update: 2018-12-05
在任何一個時間點上,線程是可結合的(joinable),或者是分離的(detached)。一個可結合的線程能夠被其他線程收回其資源和殺死;在被其他線程回收之前,它的儲存空間資源(如棧)是不釋放的。相反,一個分離的線程是不能被其他線程回收或殺死的,它的儲存空間資源在它終止時由系統自動釋放。
Time of Update: 2018-12-05
預設情況下,libcurl不支援https, 如果使用https連結,就會出現" Protocol https not supported or disabled in libcurl" 的錯誤提示。查看curl是否支援https可以使用命令:curl -V。curl有兩種方式使用https :1. 設定為不驗證認證和HOSTcode = curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 0L);2. 設定一個SSL判別認證http://curl.
Time of Update: 2018-12-05
fprintf、printf、sprintf、fscanf、scanf、sscanf 格式化輸入輸出 格式化輸入輸出 1. fprintf(格式化輸出資料至檔案)相關函數 printf,fscanf,vfprintf表標頭檔 #include<stdio.h>定義函數 int fprintf(FILE * stream, const char *
Time of Update: 2018-12-05
例如輸入 12,從 1 到 12 這些整數中包含 1 的數字有 1,10,11 和 12,1 一共出現了 5 次。 public class Test {//1到n所有數中1個數public static int getTotal(int n){if(n == 0){return 0;}else{return getTotal(n-1) + get(n);}}//第i個數中1個數public static int get(int i){String s = i + "";int
Time of Update: 2018-12-05
一個數組是由一個遞減數列左移若干位形成的,比如{4,3,2,1,6,5} 是由{6,5,4,3,2,1}左移兩位形成的,在這種數組中尋找某一個數。 public class Test {//遞減序列的二分public static int binarySearch(int[] array,int begin,int end,int goal){int mid = (begin + end)/2;while(begin <= end){if(array[mid] ==
Time of Update: 2018-12-05
在程式中調用curl介面, 出現錯誤碼51,顯示ssl對等認證不正確,然後上網去下載最新認證:wget http://curl.haxx.se/ca/cacert.pem將認證放置在配置目錄下:cp cacert.pem /usr/local/share/curl/curl-ca-bundle.crt然後繼續運行程式還是報同樣的錯誤,很是麻煩,後來乾脆直接把認證驗證關閉:在程式碼中加入: CURL *curl; curl = curl_easy_init();
Time of Update: 2018-12-05
由於程式中經常有大量對檔案的輸入輸出操作,它經常構成了程式的主要部分,因而C語言提供了很多輸入輸出的函數,它們分別用於兩種類型檔案輸入輸出系統:即由ANSI標準定義的緩衝檔案(也稱標準檔案(流)輸入輸出(I/O)系統);另一類是ANSI標準中沒有定義的非緩衝檔案(也稱非標準檔案(流)輸入輸出(I/O)系統)。我們已經熟悉了通過鍵盤和顯示器進行輸入輸出的一些函數,如scanf(),printf()等等,這些通過控制台(鍵盤、顯示器等)進行I/O的操作,可以看作標準檔案輸入輸出系統的一些特例,實際
Time of Update: 2018-12-05
JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。 易於人閱讀和編寫。同時也易於機器解析和產生。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。 JSON採用完全獨立於語言的文字格式設定,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。
Time of Update: 2018-12-05
深入解析scanf()/getchar()和gets()等函數 ----------------------------------------------------| 問題描述一:(分析scanf()和getchar()讀取字元) |---------------------------------------------------- scanf(),
Time of Update: 2018-12-05
記憶體配置策略按照編譯原理的觀點,程式運行時的記憶體配置有三種策略,分別是靜態,棧式的,和堆式的.靜態儲存分配是指在編譯時間就能確定每個資料目標在運行時刻的儲存空間需求,因而在編譯時間就可以給他們分配固定的記憶體空間.這種分配策略要求程式碼中不允許有可變資料結構(比如可變數組)的存在,也不允許有嵌套或者遞迴的結構出現,因為它們都會導致編譯器無法計算準確的儲存空間需求.棧式儲存分配也可稱為動態儲存裝置分配,是由一個類似於堆棧的運行棧來實現的.和靜態儲存分配相反,在棧式儲存方案中,程式對資料區的需
Time of Update: 2018-12-05
1.linux下兩種常見的壓縮包壓縮方法:(解包:tar -zxvf + 包名 需要產生的目錄)bz2檔案 time tar -jcvf j.tar.bz2 workspace/ 340M 56.8% real 13m20.975s user 11m13.872s sys 0m5.985sgz檔案 time tar -zcvf z.tar.gz workspace/ 348M 58.1% real 2m10.305s user 0m54.228s sys 0m7.399s
Time of Update: 2018-12-05
重新編譯curl 安裝後 yum 報錯/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback系統內容:CentOS release 6.2 (Final)2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64 x86_64 x86_64 GNU/Linux用ldd 查看動態庫串連。沒有,
Time of Update: 2018-12-05
int a = 15; printf("%d %d\n", ++a, a++); 老問題了,也沒什麼好說的,但是順序點涉及到參數的情況還沒仔細考慮過,所以分析下其內部原理。 我本來的考慮是按照 cdecl 壓棧次序,a++ 先壓入,為 15,此後++發生副作用,a 變為 16,然後壓入 ++a,a 先自增,為 17,所以輸出結果為 17 15。雖然心裡忐忑了一下,但也就這樣自欺欺人了一會,用 gcc 驗證無誤,然後 vc6 就給了我一棒子,它的輸出為 16 15。
Time of Update: 2018-12-05
一.什麼是線程池?線程池就是以一個或多個線程[迴圈執行]多個應用邏輯的線程集合.注意這裡用了線程集合的概念是我生造的,目的是為了區分執行一批應用邏輯的多個線程和線程組的區別.關於線程組的概念請參閱基礎部分.一般而言,線程池有以下幾個部分:1.完成主要任務的一個或多個線程.2.用於調度管理的管理線程.3.要求執行的任務隊列.那麼如果一個線程迴圈執行一段代碼是否是線程池?如果極端而言,應該算,但實際上迴圈代碼應該算上一個邏輯單元.我們說最最弱化的線程池應該是迴圈執行多個邏輯單元.也就是有一批要執行的
Time of Update: 2018-12-05
問題描述:定義字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部。 如把字串 abcdef 左旋轉 2 位得到字串 cdefab。 要求:請實現字串左旋轉的函數,要求對長度為 n 的字串操作的時間複雜度為 O(n),空間複雜度為 O(1)。 類似問題有:數組的迴圈移位等。思路:字串如123abcd,上面說的旋轉其實就是字串向左移位,左移3位做法如下: 123->321 abcd-&
Time of Update: 2018-12-05
問題描述:假設這有一個各種字母組成的字串,假設這還有另外一個字串,而且這個字串裡的字母數相對少一些。從演算法是講,什麼方法能最快的查出所有小字串裡的字母在大字串裡都有? 比如,如果是下面兩個字串: String 1: ABCDEFGHLMNOPQRS String 2: DCGSRQPOM 答案是 true,所有在 string2 裡的字母 string1 也都有。 如果是下面兩個字串: String 1: ABCDEFGHLMNOPQRS String 2: