原创 APUE——文件系統的VFS以及相關結構體簡要分析

參考鏈接如下: https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/#fig2 https://blog.csdn.net/Ohmyberry/ar

原创 APUE——信號與線程

APUE原文 Linux 多線程應用中如何編寫安全的信號處理函數 LinuxThread與NPTL 多線程下慎用sigwait linux中使用信號–sigwait()和pthread_sigmask() 1. 信號與線程三個函數

原创 Effective C++——內存管理之make_shared

條款17 以獨立語句將NEW置入智能指針 如果有一個函數int priority() void processWidget(shared_ptr< Widget> pw, int priority),由於shared_ptr的構

原创 APUE——信號基礎以及信號的響應

1.信號基礎 1.1 信號函數 #include <signal.h> void (*signal(int signo, void (*func)(int)))(int); 這是可靠寫法 void (* signal( int

原创 C的字節對齊和位域操作

1、 字節對齊 首先分析字節對齊之前,需要了解概念 自身對齊:數據結構自身的大小 指定對齊:編譯器或者用戶指定的值,例如__attribute__ ((aligned (1))),設置爲單字節對齊 有效對齊:取自身對齊和指定對齊

原创 APUE——pthread_cond_wait深度分析

參考鏈接1 源碼1 驚羣效應 1、pthread_cond_wait與signal函數 #include <pthread.h> int pthread_cond_wait( pthread_cond_t *restrict c

原创 Effective c++筆記----const

1. 用const對象或者enums替換#defines 1.const與define 原來寫法 現在寫法 原因 const char* const authorName=“ScottMeyers” const st

原创 APUE——unix出錯處理

1. errno原理 當UNIX函數出錯時(系統調用),常常會返回一個負值,而且整型變量errno通常被設置爲含有附加信息的一個值。 文件<errno.h>中定義了符合errno以及可以賦予它的各種常量,這些常量都以字符E開頭。另

原创 C++左值與右值以及std::move詳解

1、左值與右值 這裏首先要區分左值引用、右值引用和左值、右值的關係 int i = 1; int& a = i; 這裏a是左值,其decltype(a)爲int&,爲左值引用,只能等於左值 int&& b = 1; b爲左值,但

原创 lambda以及易錯點分析

1 理解lambda lambda就是一個仿函數的實例化,是爲了解決書寫模板的複雜度 lambda如果只用auto,則是auto型參數推導,只是值傳遞推導,如果有->則是佔位,如果 lambda 體包含單個返回語句,編譯器將從返

原创 C++ bind與回調函數

1 回調函數 註冊回調函數裏可以使用functional來統一接口,可以傳入函數指針,lambda,bind等!!! 函數1,2 爲一個模塊,爲回調函數,函數3爲一個模塊,爲註冊回調函數,形參爲函數指針 註冊回調函數的入參爲函數

原创 模板參數類型推導和完美轉發及move、引用摺疊

模板實參推斷(Template Argument Deduction)的規則比較複雜,首先要知道參數類型和模板參數類型是不同的概念。 注意點; 模板參數T是由PT和模板實參共同決定的 template<typename T> /

原创 Linux內核之——等待隊列wait queue

前言 等待隊列1 等待隊列2 調度器 CPU調度如下圖所示: 等待隊列其原理是: cpu會調度就緒隊列,或者打斷執行線程,運行就緒隊列 創建等待隊列頭和隊列,使用wait event,當condition不滿足時,當前線程進入

原创 深入篇:decltype深入分析

1.decltype作用(主要是爲了獲取引用關係) decltype是爲了獲取變量或者表達式的類型而存在,其主要作用是可以獲取引用關聯(&),甚至是爲了確認左值! 當decltype(A),A爲變量的時候,const int&

原创 const_cast、static_cast、dynamic_cast、reinterpreter_cast分析

C++風格的類型轉換提供了4種類型轉換操作符來應對不同場合的應用。參考鏈接四種類型分析 注意使用這幾種類型轉換,得到的是對象,而不是類型 const_cast,字面上理解就是去const屬性。 static_cast,命名