所謂素數也叫做質數,它的定義如下:該數只能被1和它本身整除。核心演算法:篩選法,凡是素數的倍數全部去除。 代碼如下:#include <stdio.h>#define NUMS 2000int main(int argc, char **argv){int di[NUMS]={0};for(int i=2;i<=NUMS;i++){di[i-1] = i;for(int j=2;j<=NUMS;j++){if(i != j && i%j==0){di[i-
在linux環境中要從鏈路層(MAC)直接收發資料幀,可以通過libpcap與libnet兩個動態庫來分別完成收與發的工作。雖然它已被廣泛使用,但在要求進行跨平台移植的軟體中使用仍然有很多弊端。這裡介紹一種更為直接地、無須安裝其它庫的從MAC層收發資料幀的方式,即通過定義鏈路層的通訊端來完成。Packet通訊端用於在MAC層上收發未經處理資料幀,這樣就允許使用者在使用者空間完成MAC之上各個層次的實現。給無論是進行開發還是測試的人們帶來了極大的便利性。Packet通訊端的定義方式與傳送層的通訊端
一、環境和要求 線路:ADSL:2M/512K eth0:10.0.0.136,外網口 eth1:192.168.1.1,內網口 業務需求:保證正常的網頁瀏覽,FTP,SMTP,POP3,對其它的所有應用加以限制,以免影響正常業務的使用。 1、讓互動資料包保持較低的延遲時間,也就是說上傳或下載檔案不會打擾SSH/telnet等。 2、上傳或下載期間有合理的速率用於網頁瀏覽,即使http屬於一種大量資料轉送,也不應受其它傳輸影響太大 3、對FTP-data限速,不會佔用所
Select 系統調用:select系統調用是用來監視多個檔案控制代碼的狀態的。程式會停在select這裡等待,直到被監視的檔案控制代碼有某一個或多個發生了狀態改變,或者到了逾時時間。 具體的select系統調用的參數可以看看man手冊裡面的說明,這裡我們用一個使用者空間的案例來解釋說明一下這個系統調用的用法:int main(void){ int fd1,fd2,max_fd; int i; fd_set fdR; struct
假設:a=0x12345678;則大端位元組序和小端位元組序的儲存如所示: Big-Endian Little-Endian0位元組 12h 78h1位元組 34h 56h2位元組 56h
十進位 關鍵字 協議======= ======= ==============0 HOPOPT IPv6 逐跳選項 1 ICMP Internet 控制訊息 2 IGMP Internet 組管理 3 GGP 網關對網關 4 IP IP 中的 IP(封裝) 5 ST 流 6 TCP 傳輸控制 7 CBT CBT 8 EGP 外部網關協議 9 IGP 任何專用內部網關 (Cisco 將其用於 IGRP)10 BBN-RCC-MON BBN RCC 監視 11 NVP-II 網路語音協議 12
struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET */ u_int16_t sin_port; /* port in network byte order */ struct in_addr sin_addr; /* internet address */};struct in_addr { u_int32_t s_addr; /* address in network byte
Select在Socket編程中還是比較重要的,可是對於初學Socket的人來說都不太愛用Select寫程式,他們只是習慣寫諸如connect、accept、recv或recvfrom這樣的阻塞程式(所謂阻塞方式block,顧名思義,就是進程或是線程執行到這些函數時必須等待某個事件的發生,如果事件沒有發生,進程或線程就被阻塞,函數不能立即返回)。可是使用Select就可以完成非阻塞(所謂非阻塞方式non-block,就是進程或線程執行此函數時不必非要等待事件的發生,一旦執行肯定返回,以傳回值的不
摘要 tc是一個設定Linux核心流量控制的工具 名字 tc - 顯示/維護流量控制設定 摘要 tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id |root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ] tc class [ add | change | replace ] dev DEV parent
考慮到伺服器資料的安全,我考慮增加一台備份伺服器,通過資料同步,達到較好的冗餘。 linux下有非常好的一個命令rsync可以實現差異備份,下面就說說它的用法:▲合適系統:紅旗DC 4.1 or 5.0或其他linux、FreeBSD系統▲測試環境:紅旗DC 5.0一、通過rsh或ssh命令 在沒有建立rsync伺服器的情況下,我們可以利用rsync命令直接進行快速的差異備份:命令格式:#rsync [option] 源路徑
kmalloc,
代碼如下:#include <stdio.h>void hello(){ int i = 0; printf("i=%d, hello world/n", i);}int main(){ hello(); return 0;} gdb產生調試資訊,進去看看。在hello處設定斷點1,在main處設定斷點2運行到斷點2處,查看寄存器情況:Breakpoint 2, 0x080483f4 in main ()Missing
我在上課的時候,由於各種原因,上課老師講的自己總不愛聽,現在到火燒眉毛了,才知道這些基礎知識的重要性,現在想想,也沒有那麼的困難。重在理解這些底層的概念,然後考試考的都是一些很簡單的概念和計算,在這裡我來闡述一下樹和二叉樹的一些考點。基礎知識一點也不能馬虎。所以我們從最基礎的開始說起。以這棵樹來說幾個基本的概念。結點的度:一個結點的子樹數目稱為該結點的度。(例如結點1的結點的度為3,結點2的結點的度為3,結點3的結點的度為0)。樹的度:所有結點度當中,度最高的一個。(樹的度是3)。葉子結點:應該
如前文所述,Linux核心中的代碼,經過稍加改造後,可以在使用者態下使用。 linclude/linux/list.h 中的函數和宏,是一組精心設計的API,有比較完整的注釋和清晰的思路。在使用者態下使用list.h,查看改造後的list.h1. 舉例 下面是使用者態下的例子,用以建立、增加、刪除和遍曆一個雙向鏈表。#include <stdio.h>#include <stdlib.h>#include "list.h"struct kool_list{
採用 10 個能夠提高您的 UNIX命令列效率的好習慣——並在此過程中擺脫不良的使用模式。本文循序漸進地指導您學習幾項用於命令列操作的技術,這些技術非常好,但是通常被忽略。瞭解常見錯誤和克服它們的方法,以便您能夠確切瞭解為何值得採用這些 UNIX 習慣。 引言當您經常使用某個系統時,往往會陷入某種固定的使用模式。有時,您沒有養成以儘可能最好的方式做事的習慣。有時,您的不良習慣甚至會導致出現混亂。糾正此類缺點的最佳方法之一,就是有意識地採用抵制這些壞習慣的好習慣。本文提出了 10 個值得採用的
將所有出現logInfo的行注釋掉::g#logInfo#s#^#//#g刪除檔案中所有空行::g/^ *$/d所有出現foobar的行,然後替換bar為 baz:g/foobar/s/bar/baz/gvi基本的字串替換如下:":%s/oldstring/newstring/g" 這個是在全文替換oldstring為newstring,如":%s/^ *//g" 這條命令去掉所有的行首空格":%s//t/ /g" 這條命令把所有的TAB鍵換成4個空格
1. 開啟動態連結程式庫: #include <dlfcn.h> void *dlopen(const char *filename, int flag); 該函數返回操作控制代碼,如: void *pHandle = dlopen(strSoFilePath, RTLD_LAZY);2. 取動態對象地址: #include <dlfcn.h> void *dlsym(void *pHandle, char *symbol);
三個程式:test1.c test2.c test3.c gcc test1.c –o test1 在test2.c中調用system(“./test1”);gcc test2.c –o test2在test2.c中調用popen(“./test2”,”r”);gcc test3.c –o test3./test3發現test2.cz中的system返回-1,但是test1執行了。查看system的源碼 #include <sys/types.h>
摘要:本文介紹了popen函數的使用方法和行為機理,並給出實際的例子來輔助說明了popen函數的使用方法。檔案中還介紹了幾個檔案操作的函數,如fopen,fread,fwrite等 作者:zieckey (http://zieckey.cublog.cn) All Rights Reserved!popen使用FIFO管道執行外部程式。#include <stdio.h>FILE *popen(const char *command, const char
1.1. OSPF入門童話 可以把整個網路(一個自治系統AS)看成一個王國,這個王國可以分成b幾個區(area),現在我們來看看地區內的某一個人(你所在的機器root)是怎樣得到一張世界地圖(routing