原创 不可不知的shell中的IFS

Linux下有一個特殊的環境變量叫做IFS,叫做內部字段分隔符(internal field separator)。它可以決定項目列表或值的列表的分隔符,IFS的默認值爲空格,Tab製表符或換行符。使用for循環讀取項目的列表或直

原创 Linux 系統上最常用的定時器

有時我們需要定時完成一些任務。簡單的方法是使用 while 循環加 sleep。比如每隔 1 分鐘檢查鏈接情況的 heartbeat 任務等。比如: while(condtion) { //do something sleep

原创 “字節序”網絡中的大小端問題

大小端在計算機業界,endian表示數據在存儲器中的存放順序。“endian”一詞來源於喬納森·斯威夫特的小說格列佛遊記。 小說中,小人國爲水煮蛋該從大的一端(Big-End)剝開還是小的一端(Little-End)剝開而爭論,爭

原创 認真理一理這些奇怪緩衝問題

上一篇《不可不知的Linux中三種緩衝模式》中說到了三種緩衝類型,這一篇主要講與緩衝相關的函數,這些函數可以修改默認的緩衝類型,及在實際中可能遇到的問題。 與緩衝相關的函數 我們知道標準錯誤永遠是無緩衝的。當標準輸入輸出指向的是交

原创 不可不知的Linux中三種緩衝模式

今天來說說緩衝的事。也許你已經聽說過三種緩衝模式。標準I/O庫的緩衝主要分爲3種:全緩衝、行緩衝和不緩衝。今天就3種緩衝寫了一些示例,以幫助理解。 I/O文件流的緩衝類型 標準IO提供緩衝的目的是爲了通過減少使用read和writ

原创 一些雜亂的C語言算法

將字符串從小寫轉換爲大寫 在下面的程序中,將要求用戶輸入小寫的String,然後程序會將其轉換爲大寫的String。程序中遵循的邏輯:所有小寫字母(a-z)的ASCII值均在97至122之間,而其相應的大寫字母(A-Z)的ASCI

原创 Linux 系統編程一一線程

什麼是線程 線程是 CPU 調度和分派的基本單位。線程存在於進程中,共享進程的資源。爲了減少系統開銷,從進程中演化出了線程。線程自己不擁有資源,但它可以去訪問其所屬進程的資源。 進程和線程的關係 通常在一個進程中可以包含若干個線程

原创 如何驗證Linux Signal可靠信號與不可靠信號

前面章節已經<Linux下的Signal信號處理及詳解>說了,Linux 下的信號分爲可靠信號和不可靠信號,或稱爲實時信號和非實時信號,信號是從1開始編號的,不存在0號信號。0信號用來測試對應進程是否存在或者是否由權限給其發送信號

原创 Shell中調用外部腳本的若干種方式

在運行shell腳本時候,有三種方式來調用外部的腳本,exec(exec script.sh)方式、source(source script.sh)方式、fork(./script.sh)方式。 fork方式 通常情況下在系統中通

原创 Linux下使用inotify-tools工具監控文件

如果想在Linux上監控文件系統的變化,如訪問屬性、讀寫屬性、權限屬性、刪除創建、移動等操作。可以考慮使用inotify-tools 工具,inotify-tools 是一個C庫和一組命令行的工作提供Linux下inotify的簡

原创 聊一聊Linux C中時間編程

如果想知道一段代碼運行了多久,要在 log 文件中記錄事件發生時的時間戳;再比如說需要一個定時器以便能夠定時做某些計算機操作呢? 在計算機世界中,時間在不同場合也往往有不同的含義,讓試圖思考它的人,感到捉不透它。但值得慶幸的是,L

原创 Linux shell腳本文件的各種執行方式

當我們編寫好腳本文件以後,接下來就是執行腳本文件了。執行腳本文件的方式有很多種,比如一個文件a.sh,我們可以選擇需要執行權限的方式(chmod +x a.sh),不需要執行權限的方式(bash a.sh或者sh a.sh),需要

原创 C語言pcre庫的使用及驗證IP地址的合法性

PCRE是一個用C語言編寫的正則表達式函數庫,它十分易用,同時功能也很強大,性能超過了POSIX正則表達式庫和一些經典的正則表達式庫,在使用PCRE庫時,首先肯定是需要安裝pcre的,不過一般的系統都會有自帶的PCRE庫。不過如果

原创 Linux shell 自動化修改SSH配置文件

SSH可以爲遠程登錄的會話和其他網絡服務提供安全性的協議。它是目前較可靠,是專爲遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題,透過SSH可以對所有傳輸的數據進行加密,也能夠防止

原创 聆聽大師的教誨,掌握編程精髓

爲什麼《C陷阱與缺陷》這本書,時至今天仍然備受推崇,爲C語言學習者深入學習之中必經之道。如書名所述,該書並不是如何用c語言編程的教科書,這本書不是對C語言的批判,而是列出了一些使用C語言常見的錯誤,以及一些看似簡單的陷阱。對於提升