原创 編程學習小結(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的根目錄和工作目錄設置爲這個“根文件