原创 Linux網絡編程 基於TCP的多進程

客戶端代碼: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h

原创 Linux下struct timeval結構體

轉載自:http://blog.chinaunix.net/uid-20548989-id-2533161.html struct timeval   {   __time_t tv_sec;        /* Seconds. 

原创 Shell腳本下的彩色進度條

shell中printf的彩色方案 顏色是通過添加專用序列來選擇的 – 夾在 “\e[“和 “m”之間的數字。如果指定一個以上的數字,則用分號將它們分開。 echo -e “\e[31;42m” 使用”\e[0m”序列將顏色重新

原创 linux shell腳本中的``和$()的區別

在 bash shell 中,()與‘‘(反引號)都是用來做命令替換用(commandsubstitution)的。而 ( ) 並不見的每一種 shell 都能使用,若你用 bash2 的話,肯定沒問題… linux shell

原创 Linux下select函數編寫服務器

select函數 1、select的作用 系統提供select函數來實現多路複用輸入/輸出模型。select系統調用是用來讓我們的程序監視多個文件句柄的狀態變化的。程序會停在select這裏等待,直到被監視的文件句柄有一個或多

原创 實現一個棧Stack,要求實現Push(出棧)、Pop(入棧)、Min(返回最小值的操作)的時間複雜度爲O(1)

#include <stack> #include <assert.h> template <typename T> class StackWithMin { public: StackWithMin(void) {}

原创 crond和crontab

一 crond服務 crond位於/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最總引用/var/lock/subsys/crond。 crond

原创 替換字符串中的空格爲$$$。要求時間複雜度爲O(N)

#include <iostream> using namespace std; void ReplaceBlank(char string[], int length) //length 爲string數組的總容量 {

原创 linux下的eval指令

eval command-line 其中command-line是在終端上鍵入的一條普通命令行。然而當在它前面放上eval時,其結果是shell在執行命令行之前掃描它兩次。如: pipe=”|” eval ls $pipe

原创 1.設計一個類不能被繼承 2.設計一個類只能在堆上創建對象。 3.設計一個類只能在棧上創建對象

1.設計一個類不能被繼承 常規解法:將構造函數設爲私有函數 在C++中,子類的構造函數會自動調用父類的構造函數,子類的析構函數也會調用父類的析構函數。要想一個類不能被繼承,只要把它的構造函數和析構函數都設置爲私有函數。那麼當一個

原创 隊列實現棧,棧實現隊列

使用兩個棧實現一個隊列 #include <iostream> #include <queue> #include <stack> using namespace std; template<typename T>class Q

原创 判斷兩個鏈表是否相交(考慮帶環與不帶環)

1.不考慮帶環的情況,若相交,求交點 解法一:如果兩個鏈表都無環,則可以把第二個鏈表接在第一個鏈表後面,如果得到的鏈表有環,則說明這兩個鏈表相交。這裏如果有環,則第二個鏈表的表頭一定在環上,只需要從第二個鏈表開始遍歷,看是否會回到

原创 棧的壓入、彈出序列(是否合法)

元素出棧、入棧順序的合法性。如:入棧的序列(1,2,3,4,5),出棧序列爲(4,5,3,2,1),則合法。入棧的序列(1,2,3,4,5),出棧序列爲(4,5,2,3,1),則不合法。 bool IsPopOrder(cons

原创 複雜鏈表的複製

解題思路: 過程分爲三步: 首先,遍歷鏈表,複製當前結點currentNode對應的結點cloneCurNode,並將cloneCurNode放置在currentNode的後面,這樣就形成一條包含原始鏈以及複製鏈的長鏈。 然