原创 linux學習筆記—進程—信號

①信號的阻塞掩碼,會被繼承給子進程 ②掛起的信號,不會被繼承給子進程 ③不同的信號會相互嵌套, 但已經在相應的信號不會相互嵌套 ④對於非實時信號,掛起的信號不會重複,在解除阻塞之後只會相應一次 對於實時信號, 掛起的信號會重複 ,

原创 c語言學習筆記—關於在頭文件中定義extern變量

“1.h” #include <stdio.h> extern int a; “1.c” #include <stdio.h> #include "1.h" int a = 3; int main(int argc, char c

原创 c語言學習筆記—scanf,getchar關於字符跟字符串的讀取

scanf 字符和字符串的讀取   對於 stdin 中的字符的讀取,scanf 、 getchar 等函數會讀取緩衝區中的第一個字符,包括空白字符和非空白字符。   對於 stdin 中的字符串的讀取,scanf 會在開始處理後

原创 c語言學習筆記——關於while(*p++)

#include<stdio.h> int main() { char str[] = "zzzz"; char *p = str; while(*p++) //第一次判斷時是判斷第一個z { *p =

原创 C語言學習筆記

c學習筆記——預處理,編譯,鏈接 預處理:進行宏替換,將頭文件所包含的內容替換進來,跟運行相應的宏指令; 編譯:C語言編譯所進行的是語法分析,詞法分析,爲靜態數據(全局變量跟static聲明的靜態變量)分配內存。會檢查函數是否定義

原创 c語言學習筆記—linux下用shell指令獲取當前時間並輸出到指定文件中

/* 運行程序後,可以將當前時間寫入到 1.txt 中,間隔1秒。 比如5秒後,文件中內容如下:(追加) */ int main() { int i = 1; while(1) { sleep(1); system(

原创 c語言學習筆記—在刪除鏈表結點時, 需要先將該結點指向空,而不是直接free該結

在刪除鏈表結點時, 需要先將結點指向空,然後在free結點,而不是直接free該結點,因爲刪除的意思是讓節點不再鏈接到鏈表中,但如果讓前驅結點指向需要刪除結點之後就直接free該結點的話只是沒有了該結點堆內存的使用權,但結點內未指

原创 爲什麼將一個浮點型變量強制轉換爲int *指針會報錯

Linux下gcc編譯: 求解: 爲什麼將一個浮點型變量強制轉換爲int *指針會報錯, 但將一個char型變量強制轉換爲int * 指針則只是warning? #include<stdio.h> { int a = 4; f

原创 關於linux下鏈接動態庫.so文件時時因編譯時鏈接跟運行時鏈接而出錯的一些問題,以及-L -l的意義

一、gcc鏈接動態庫編譯時-L的問題 gcc -shared -fpic add.o sub.o -o libcount1.so //(-l(小寫l)指定動態庫文件名) //生成動態庫文件libcount1.so (一)此時

原创 將int類型地址強制轉換爲float *,然後進行解引用的問題

int main() { int a = 3; float *p = &a;//warning:initialization from incompatible pointer type(初始化類型與指針類型不一致) flo

原创 c語言學習筆記

在調用文件i/o函數時,若文件指針指向末尾,此時向文件寫入內容,則會將文件結束符替換成換行符然後再將數據寫入。