原创 Handle 句柄
操作系統的句柄: 在使用操作系統時,經常會用到句柄。那麼,什麼是句柄? 簡而言之,句柄就是一個 void * 指針,指向了一塊內存空間,這塊內存纔是我們需要的數據結構。 以FreeRTOS爲例: typedef void * Timer
原创 Linux專欄8:Linux 連接文件
linux 連接文件 1 linux 連接文件 Linux有兩種連接文件:符號連接(軟連接)和硬鏈接,符號鏈接類似 Windows 下的快捷方式;硬鏈接通過文件系統的 inode 連接來產生新文件名,而不是產生新文件。inode:記錄
原创 Linux專欄6:磁盤管理和文件壓縮
磁盤管理 1 磁盤設備文件 1 準備一個FAT32格式的U盤(U盤中有 “磁盤掛載測試文件.txt” 和 “disk_test.txt”); 2 /dev/sd* 文件,此類文件是磁盤設備文件,並不能直接訪問磁盤,必須要將磁盤掛載到某
原创 計算機原理7:總線與外設
1 回車換行 \r\n 下面是C語言中,關於\r\n的程序: #include <stdio.h> int main(int argc, char *argv[]) { printf("word1 word2 word3\n");
原创 計算機原理4:儲存器
1 二進制加法器 2 加減法器 1 取反電路 2 加減法電路 在進行二進制減法 A - B 時,如果 A > B,則補碼計算結果會進位;A < B則補碼計算結果不會進位。 3 累加器 4 計數器 下面是D觸發器(翻轉)實現的計數器
原创 c primer plus 專題15:位操作
1 按位運算符 1 按位邏輯運算符 按位取反 ~ 按位與 &,賦值語句結合 &= 按位或 |,賦值語句結合 |= 按位異或 ^,賦值語句結合 ^= 2 設置位 flags |= MASK; 3 清除位 flags &= ~MASK;
原创 計算機原理8:操作系統
CP/M 1 計算機軟件 在之前,都是通過控制面板,向RAM中手動輸入程序的。而一旦微處理器斷電,RAM中所有的內容(包括指令和數據)都會丟失。這樣傳統的方式,使我們無論是寫入程序或者保存程序都不方便。 1 沒有軟件時,由於RAM內容
原创 c primer plus 專題13:文件
1 與文件進行通信 1 文件重定向 文件重定向的程序 /* write_file.c -- 數據寫入到文件 */ #include <stdio.h> int main(void) { int i; char * pc; co
原创 c primer plus 專題6:循環
1 while 循環 #include <stdio.h> int main(void) { long num; long sum = 0L; /* 把 sum 初始化爲 0 */ int s
原创 c primer plus 專題7:分支和跳轉
1 if 語句 #include <stdio.h> int main(void) { const int FREEZING = 0; float temperature; int cool_days = 0; int all
原创 Linux專欄7:用戶與權限管理
用戶和用戶組 1 Linux用戶 Linux是一個多用戶操作系統,不同的用戶擁有不同的權限,可以查看和操作不同的文件。 Ubuntu有三種用戶: 1 初次創建的用戶;2 root 用戶;3 普通用戶; 初次創建的用戶權限比普通用戶多,
原创 Linux專欄4:shell命令
shell命令 1 內部命令和外部命令 使用 type 命令查詢: ding@ding-ubuntu:~$ type cd cd 是 shell 內建 ding@ding-ubuntu:~$ type man man 是 /usr
原创 c primer plus 專題8:字符輸入 / 輸出
1 單字符I / O 1 常用的單字符IO函數 getchar() 和 putchar() #include<stdio.h> int main(void) { char ch; while ((ch = getchar())
原创 計算機原理2:鎖存器和觸發器
1 SR鎖存器 分析過程: 1 R = 0,S = 0時 不改變 Q和Q' 的狀態 2 S =1,R = 0時 設置位 Q=1,Q'=0 3 S = 0,R = 1時 與上面對稱,所以是清除位 Q = 0,Q' = 1 4 S
原创 計算機原理6:8080微處理器
1 8080微處理器引腳 引腳說明: 2 寄存器組 8080 CPU的寄存器說明: 3 尋址 直接尋址和間接尋址: MOV 操作碼的位模式: 立即數尋址: 注意,三種尋址方式的數據保存位置: 直接尋址,操作數放在內