原创 【匿名通信】在Linux環境下編譯運行tor源碼

參考原文 在Linux環境下編譯運行tor源碼

原创 《程序員的自我修養》第三章 目標文件裏有什麼

在PC端的可執行文件,主要是linux下的ELF(Executable Linkable Format)文件和windows下的PE文件。 一般c語言執行代碼都保存在.text段上,已經初始化的全局變量或者局部靜態變量保存在.data段上

原创 牛客網《劍指Offer》 編程 29.最小的k個數(使用c++提供的set或者multiset)

題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 解題思路 此次使用不改變原數組的方法。使用c++STL中的set或者multiset來實現。這兩個模板底

原创 《Linux程序設計》第四章 (臨時文件、用戶信息、主機信息、日誌、資源和限制)

1.臨時文件 程序有的時候會使用一些中間文件存儲某些中間計算結果,最後在將這些文件刪掉。這樣的文件成爲臨時文件。 tmpnam函數可以生成一個唯一的臨時文件名。函數原型如下: #include <stdio.h> char* tmp

原创 牛客網《劍指Offer》編程 29. 最小的k個元素 (使用堆)

題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 解題思路 本題可以構建一個size爲k的最大堆進行求解。 遍歷數組。 當堆中元素總量小於k的時候,將當前

原创 牛客網 《劍指Offer》編程 30.連續子數組最大和

題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全爲正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期

原创 《Linux程序設計》第四章(程序參數、環境變量、時間和日期)

1.程序參數:C語言編寫的linux或者unix程序的入口是main函數。該函數聲明如下: int main(int argc,char* argv[]);其中argc代表參數個數,argv是一個字符串數組。參數個數包括程序名自身,arg

原创 《Linux程序設計》第三章(標準IO庫、格式化輸入輸出、文件和目錄的維護、掃描目錄)

標準IO庫 在啓動程序時,有三個文件流是自動打開的,分別是stdin,stdout,stderr。 1. fopen函數:用於文件和終端的輸入和輸出。函數原型如下: #include <stdio.h> FILE *fopen(con

原创 《Linux程序設計》第三章 (錯誤處理)

函數在失敗的時候,會設置errno變量的值來指明失敗的原因。程序必須在報告錯之後立刻檢查errno變量,不然會被覆蓋掉。 1.strerror函數把錯誤代碼映射爲一個字符串,該字符串對發生的錯誤類型進行說明。函數原型如下: #inclu

原创 牛客網《劍指Offer》編程 28.數組中出現的超過一半的數字

題目描述 數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度爲9的數組{1,2,3,2,2,2,5,4,2}。由於數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存在則輸出0。 解題思路(1)

原创 牛客網《劍指Offer》編程 29.最小的k個數 (解法1,需要改變原數組)

題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 解題思路 由於快速排序每次能夠把一個數放置在正確的位置上。因此,我們可以使用快速排序的Partition

原创 《Linux程序設計》第三章 (系統調用)

許多Linux的shell都允許用戶接入自己家的目錄,使用cd ~ usr(usr是用戶名)命令即可。但是標準庫函數不能夠理解shell中的~符號。所以必須在自己的程序中使用文件名。 Linux中比較重要的三個設備文件:/dev/cons

原创 《Linux程序設計》第二章

  shell是操作系統與用戶間的接口程序。 1.管道和重定向 重定向輸出: ls -l > lsoutput.txt#將ls的輸出輸出到lsoutput.txt文件中 ps >> lsoutput.txt#將ps的輸出追加到lsout

原创 【FreeNOS學習筆記】FreeNOS安裝手冊

筆者操作系統爲Ubuntu16.04,按照官網給的教程結合在網上找到的大家一起踩過的坑,總結出如下安裝手冊。基本思路是在Ubuntu16.04上安裝虛擬機qemu,在虛擬機上跑FreeNOS。 參考博客爲: FreeNOS初探索 Free

原创 《Linux程序設計》第一章

1.庫函數 庫是一組預先編譯好的函數集合。標準庫文件存儲在/lib或者/usr/lib目錄中。.a的是靜態庫,.so是共享庫。使用某個靜態庫的某個函數,只需要包含該靜態庫的頭文件。靜態庫也成爲歸檔文件,ar工具可以創建任何文件的歸檔文件。