原创 用實際行動建立自信

1.突出自己,挑前面的位子坐. 2.睜大眼睛,正視別人. 3.昂首挺胸,快步行走. 4.練習當衆發言 5.學會微笑.

原创 可變參數及可變參數宏的使用

可變參數及可變參數宏的使用 我們在C語言編程中會遇到一些參數個數可變的函數,例如printf()這個函數,這裏將介紹可變函數的寫法以及原理.   * 1. 可變參數的宏 一般在調試打印Debug 信息的時候, 需要可變參數的宏. 從C9

原创 預處理的步驟

現在我們全面瞭解一下C編譯器做語法解析之前的預處理步驟: 1、把常量替換成相應的單字符。 2、把用\字符續行的多行代碼接成一行。例如: #define STR "hello, "\ "world" 經過這個預處理步驟之後接成一行: #

原创 計算某年某月某日是星期幾

計算星期可以用蔡勒(Zeller)公式(只適合於1582年10月15日之後的情形): w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符號含義如下: c:世紀(年的高兩位數);

原创 共享內存區

Posix提供了無親緣關係進程間共享內存區的兩種方法: 1.內存映射文件 由open函數打開,由mmap函數把得到的描述字映射到當前進程地址空間的一個文件。 #include <sys/mman.h> void *mmap(void

原创 System V 信號燈

1.semget函數創建一個信號燈集或訪問一個已存在的信號燈集#include <sys/sem.h> int semget(key_t key, int nsems, int oflags);返回一個信號燈的標識符。nsems指定集合中

原创 extern "C"解析

1.引言   C++語言的創建初衷是“a better C”,但是這並不意味着C++中類似C語言的全局變量和函數所採用的編譯和連接方式與C語言完全相同。作爲一種欲與C兼容的語言, C++保留了一部分過程式語言的特點(被世人稱爲“不徹底地面

原创 SUID,SGID,SBIT

一個進程的 real user ID【實際用戶ID】 是指運行此進程的用戶角色的 ID; 一個進程的 effective user 【有效用戶ID】ID 是指此進程目前實際有效的用戶 ID(也就是權限的大

原创 只在棧上和只在堆上申請對象

1. 只在堆上申請 class A { protected: A(){} ~A(){} public: static A* create() { return new A(); }

原创 讀寫鎖

讀寫鎖和互斥量(互斥鎖)很類似,是另一種線程同步機制,但不屬於POSIX標準,可以用來同步同一進程中的各個線程。當然如果一個讀寫鎖存放在多個進程共享的某個內存區中,那麼還可以用來進行進程間的同步,   和互斥量不同的是:互斥量會把試圖進

原创 做好自己的事,別想太多

別人想什麼,我們控制不了;別人做什麼,我們也強求不了。唯一可以做的,就是盡心盡力做好自己的事,走自己的路,按自己的原則,好好生活。

原创 System V 共享內存區

System V共享內存區在概念上類似於Posix共享內存區。代之以調用shm_open後調用mmap的是,先調用shmget,再調用shmat函數。 shmget函數創建一個尚未存在的共享內存區,或者訪

原创 FIFO實例

// msg.h #include <stdio.h> #include <stdlib.h> #define PIPE_BUF 100 #define MAXMSGDATA (PIPE_BUF - 2*sizeof(long)) #d

原创 linux大雜燴

1. mkdir [-mp] dirname -m 直接設置目錄權限,無視umask -p 遞歸創建目錄 rmdir –p dirname -p 若指定目錄被刪除後其上層目錄也爲空,則遞歸刪除上層目錄 rm [–rfi] dirname

原创 epoll之ET與LT模式

在使用epoll時,在函數 epoll_ctl中如果不設定,epoll_event 的event默認爲LT(水平觸發)模式。 使用LT模式意味着只要fd處於可讀或者可寫狀態,每次epoll_wait都會返回該fd,這樣的話會帶來很