原创 C++實現回調函數

#include <iostream> #include <string> #include <map> #include <string.h> using namespace std; class Test { public:     

原创 生活的祕密

你認識的每一個作家,初稿寫的都很糟糕,但他們會堅持釘坐在椅子上。這就是生活的祕密。(我從生活與寫作中學到的12個真理-TED) 這也許就是你們之間是主要區別。他們想做就去做了,他們在做之前就預先準備好了,他們把這當做一種義務,他們講述自己

原创 C++沉思錄-句柄類2

《C++沉思錄》的第六章介紹了句柄類,第七章也介紹句柄類,不過這章介紹的是引用技術和對象數據分開的技術,有3個類handle,point和usecount組成(順便添加了點自己認爲重要的註釋) 使用三個數據結構取代第六章的兩個數據結構會

原创 C++沉思錄-句柄類1

看了下《C++沉思錄》第六章的內容介紹的是句柄第一部分,採用引用計數器的方式減少內存的拷貝 動手敲了下代碼加深點印象,加了點註釋 class Point { public:     ///無參數的構造函數的作用:對於要創建一個Point的

原创 非阻塞connect函數

    ///當我們以非阻塞的方式來進行連接的時候,返回的結果如果是 -1,這並不代表這次連接發生了錯誤,如果它的返回結果是 EINPROGRESS,    ///那麼就代表連接還在進行中, 後面可以通過poll或者select來判斷so

原创 C語言讀寫鎖

#include <stdio.h> #include <pthread.h> int counter; pthread_rwlock_t rwlock; //3個線程不定時寫同一全局資源,5個線程不定時讀同一全局資源 void *th_

原创 殭屍進程

殭屍進程: 子進程退出,父進程沒有回收子進程資源(PCB),則子進程變成殭屍進程 孤兒進程: 父進程先於子進程結束,則子進程成爲孤兒進程,子進程的父進程成爲1號 進程init進程,稱爲init進程領養孤兒進程 一個進程在終止時會關閉所有文

原创 用fcntl改變File Status Flag

#include <unistd.h> #include <fcntl.h> #include <errno.h> #include <string.h> #include <stdlib.h> #define MSG_TRY  "try

原创 wait/waitpid函數詳解

#include<sys/types.h> #include<sys/wait.h> pid_t wait(int *status); pid_t waitpid(pid_t pid, int *status, int options);

原创 select函數實現非阻塞讀數據

#include <iostream> #include <map> #include <string.h> #include <unistd.h> #include <assert.h> #include <queue> #includ

原创 exec函數族

用fork創建子進程後執行的是和父進程相同的程序(但有可能執行不同的代碼分支), 子進程往往要調用一種exec函數以執行另一個程序。當進程調用一種exec函數時,該進程的 用戶空間代碼和數據完全被新程序替換,從新程序的啓動例程開始執行。調

原创 fork函數和wait/waitpid函數

複製一個進程映象fork 使用fork函數得到的子進程從父進程的繼承了整個進程的地址空間,包括:進程上下文、進程堆棧、內存信息、打開的文件描述符、信號控制設置、進程優先級、進程組號、當前工作目錄、根目錄、資源限制、控制終端等。 子進程與父

原创 C/C++調用lua

我用的linux版本是烏班圖14.04,用到的lua版本是lua5.1 在ubuntu下lua的安裝包,binary和dev是分開裝的 sudo a

原创 字符串的操作函數

#ifndef _My_String_ #define _My_String_ #include <iostream> class MyString

原创 筆記——2

列舉並解釋c++中的4種運算符轉化以及它們的不同點 1.const_cast操作符:用來幫助調用哪些應該使用卻沒有使用const關鍵字的函數。換句話