原创 編程學習小結(2)編程需要哪些基礎知識

編碼這麼久,編碼需要哪些基礎知識呢?有人說“貌似不需要什麼基礎知識?我們公司只要是大學畢業,不管什麼專業,在我們這搞一段時間都可以做的很好!”。的確很多公司,尤其是大公司,培訓流程相對完善,工作流程也比較規範,無論是什麼專業,即使編程0基

原创 【C語言】數據流錯誤狀態查看

#include <stdio.h> int feof(FILE* stream); int ferror(FILE *stream); int clearerr(FILE *stream); feof 到達文件末尾返回0,否則非0 fe

原创 【C語言】可變參數 宏定義

在C99中,函數式宏的最後一個參數或唯一正式參數可以是省略號,表示宏可以接受可變數目的參數表: #define MARC_NAME(...)  #define MARC_NAME(param, ...)  使用這種宏時,至少同param參

原创 【C語言】雜注指令

  #pragma命令時C語言新增的,這個命令後面可以放任何記號序列: #pragma xxxx 可以通過它增加新的預處理功能或向編譯器提供實現定義信息。#pragma命令後面的信息沒有任何限制,C實現會忽略不理解的信息。它的參數需要進行

原创 kernfs_node、kobject和kset

sysfs是一個用於導出內核內部對象及其屬性和關係的虛擬文件系統,用戶可以使用sysfs來確定運行內核中的有用信息,同時也可以用來調整設備和子系統。某些系統代理依賴sysfs中的信息來進行操作。塊子系統當前使用它來掛載根分區。如果禁用sy

原创 如何在C語言中使用C++函數

C++相對於C由於要支持一些新特性,使得二者在編譯過程中生成函數名的方式存在差異: 如C++爲了支持重載:對下面兩個函數會生成不同的函數名稱: void test_fun() { } void test_fun(int i) { } 在符

原创 【C語言】可變參數 stdarg.h

stdarg.h頭文件中包含的函數爲編程人員提供了訪問可變參數的可移植方式,是fprintf和vfprintf等函數需要的。 因爲C沒有限制參數的傳入方式,一般認爲是不可移植的。傳統的C中使用varargs.h來提高移植性,標準C使用st

原创 【C語言】可變參數

在C99中,函數式宏的最後一個參數或唯一正式參數可以是省略號,表示宏可以接受可變數目的參數表: #define MARC_NAME(...)  #define MARC_NAME(param, ...)  使用這種宏時,至少同param參

原创 【C語言】“#”號的使用

將記號轉化爲字符串: 標準C語言中有一種機制可以將宏參數轉換爲字符串常量。宏定義中出現#記號被當作一元“字符串化”運算符,後面爲宏正式參數名,宏擴展期間,#和正式參數名換成相應的包含在字符串引號當中的實際參數。生成字符串時,記號參數表中的

原创 NN學習小結

指數衰減學習率 #指數衰減學習率 #Learning_rate = LEARNING_RATE_BASE * LEARNING_RATE_DECAY * (global_step / LEARNING_RATE_BATCH_SIZE )

原创 神經網絡使用小結

神經網絡實現過程: 準備數據,提取特徵,作爲輸入 搭建NN結構,從輸入到輸出(搭建計算圖,使用會話執行) 迭代優化參數 使用訓練好的模型進行分類 使用Tensorflow搭建神經網絡分爲以下四步: 導入模塊 前向傳播(定義輸入,參數和輸出

原创 臨時內核頁表的創建 __create_page_tables

相關宏: .globl swapper_pg_dir .equ swapper_pg_dir, KERNEL_RAM_VADDR - PG_DIR_SIZE 相當於: #define swapper_pg_dir (K

原创 Linux進程PID分配

struct pid在內核內部用於標識一個“進程”,表示一個獨立的任務(task)、進程組、會話,爲了快速索引可以用hash表來組織。 下面我們基於Linux4.20看下進程的pid是如何分配的,首先看下進程pid相關的數據結構: 進程

原创 kernfs_node、kobject、kset之間的關係

sysfs是一個用於導出內核內部對象及其屬性和關係的虛擬文件系統,用戶可以使用sysfs來確定運行內核中的有用信息,同時也可以用來調整設備和子系統。某些系統代理依賴sysfs中的信息來進行操作。塊子系統當前使用它來掛載根分區。如果禁用sy

原创 Linux根文件系統的初始化

根文件系統的安裝分爲兩個階段: 1、安裝rootfs文件系統 2、安裝實際的文件系統 其中,安裝rootfs的流程在<Linux文件子系統(VFS)的初始化>已經描述,它是一個虛擬的文件系統,並且進程0的根目錄和工作目錄設置爲這個“根文件