在Linux使用GCC編譯C語言共享庫對任何程序員來說庫都是必不可少的。所謂的庫是指已經編譯好的供你使用的代碼。它們常常提供一些通用功能,例如鏈表和二叉樹可以用來保存任何數據,或者是一個特定的功能例如一個數據庫服務器的接口,就像MySQL。大部分大型的軟件項目都會包含若干組件,其中一些你發現可以用在其他項目中,又或者你僅僅出于組織目的將不同組件分離出來。當你有一套可復用的并且邏輯清晰的函數時,將其構建為一個庫會十分有用,這樣你就不將這些源代碼拷貝到你的源代
系統 2019-08-12 01:33:02 2354
ZevenOS5.0發布了,更新軟件包括:Linuxkernel3.5,X.Org7.7和PulseAudio2.1、Audacity2.0,Claws-Mail3.8.1,Firefox17,GIMP2.8,Inkscape0.48.下載地址:zevenos5-desktop.iso(700MB).ZevenOS是一份基于Ubuntu的GNU/Linux發行,它的主旨是提供一份快速易用的系統,并帶有類似BeOS的用戶界面和對老舊硬件的支持。該發行構建于一
系統 2019-08-12 01:32:44 2354
環境服務器安裝有一個60G的硬盤,目前已劃分為/、/home、/chroot和/swap,周詳的分區信息怎么下所示:Command(mforhelp):pDisk/dev/hda:61.4GB,61492838400bytes255heads,63sectors/track,7476cylindersUnits=cylindersof16065*512=8225280bytesDeviceBootStartEndBlocksIdSystem/dev/hda
系統 2019-08-12 01:32:33 2354
讀寫文件,是作為一個操作系統所提供的最基本接口之一。我們就從寫文件過程:open,write,close這幾個接口來說起,描述寫文件的那些事兒。平時,我們做應用程序的時候,常常用到讀寫文件的函數接口,就拿寫文件來說,我們用C/C++編寫時,用到了以下的函數接口:1>FILE*fopen(constchar*restrictfilename,constchar*restrictmode);2>size_tfwrite(constvoid*restrictbu
系統 2019-08-12 01:33:43 2353
這是一小段代碼,關于STDIN_FILENO,STDOUT_FILENO的。#include#includeintmain(void){if(lseek(STDOUT_FILENO,0,SEEK_CUR)==-1)printf("lseekerror\n");elseprintf("lseeksuccessed\n");return0;}結果都是“lseekerror",由此可知,無法對標準輸入、標準輸出、標準錯誤輸出
系統 2019-08-12 01:33:01 2353
常常有人問:我想學習內核,需要什么基礎嗎?LinusTorvalds本人是這樣回答的:你必須使用過Linux。這個……還是有點太泛了吧,我想下面幾個基礎可能還是需要的,盡管不一定必需:1,關于操作系統理論的最初級的知識。不需要通讀并理解《操作系統概念》《現代操作系統》等巨著,但總要知道分時(time-shared)和實時(real-time)的區別是什么,進程是個什么東西,CPU和系統總線、內存的關系(很粗略即可),等等。2,關于C語言。不需要已經很精通C
系統 2019-08-12 01:32:49 2353
無名套接口套接口并不總是需要有一個地址。例如,socketpair函數創建了兩個彼此相連的兩個套接口,但是卻沒有地址。實際上,他們是無名套接口。想像一下冷戰期間美國總統與蘇聯之間的紅色電話。他們任何一端并不需要電話號碼,因為他們是直接相連的。同樣,socketpair函數也是直接相連的,也并不需要地址。匿名調用有時在實際上,連接中的兩個套接口中的一個也沒有地址。對于要連接的遠程套接口,他必須要有一個地址來標識。然而,本地套接口是匿名的。建立起來的連接具有一
系統 2019-08-29 23:23:32 2352
正好公司為了檢測前臺網絡,力圖收集有力證據與某CDNPK,所以隨手寫了一個群PING的程序。寫的內容比較簡單,沒有去特別追求線程效率,也沒有去用LINUX2.6+的殿堂級神器,以追求實現效率為主,一些參數大家可以自己調。同事后來幫忙補了些日志處理,當然如果有興趣的,還可以直接與AS3做SOCKET展示。大致的源碼如下:#LinuxREHL6,x64,4C/32G,GCC#defineMAXTD2#include#include
系統 2019-08-12 01:32:31 2352
建立一個腳本Linux中有好多中不同的shell,但是通常我們使用bash(bourneagainshell)進行shell編程,因為bash是免費的并且很容易使用。所以在本文中筆者所提供的腳本都是使用bash(但是在大多數情況下,這些腳本同樣可以在bash的大姐,bourneshell中運行)。如同其他語言一樣,通過我們使用任意一種文字編輯器,比如nedit、kedit、emacs、vi等來編寫我們的shell程序。程序必須以下面的行開始(必須方在文件的
系統 2019-08-12 01:32:38 2351
linux刪除文件夾非常easy,非常多人還是習慣用rmdir,只是一旦文件夾非空,就陷入深深的苦惱之中,如今使用rm-rf命令就可以。直接rm就能夠了,只是要加兩個參數-rf即:rm-rf文件夾名字-r就是向下遞歸,無論有多少級文件夾,一并刪除-f就是直接強行刪除,不作不論什么提示的意思步驟/方法1、刪除目錄實例:rm-rf/var/log/httpd/access將會刪除/var/log/httpd/access文件夾以及其下全部文件、文件夾2、刪除文
系統 2019-08-12 01:32:54 2350
本安裝環境為:opensuse12.1所需安裝包:httpd-2.4.3.tar.gzsubversion-1.7.6.tar.gzopenssl-1.0.1c.tar.gzneon-0.29.6.tar.gzpcre-8.20.tar.gz注:其中紅色字體標識的為必須要,藍色字體標識的為一些擴展包或者依賴包(要試情況下載安裝)當前我所用的是普通用戶安裝,并不是用的root用戶第一部分:安裝①.安裝apache:1.tar-zxvfhttpd-2.4.3.
系統 2019-08-29 23:13:16 2349
安裝cmake:tarzxvfcmake-2.8.4.tar.gzcdcmake-2.8.4./configure--prefix=/usr/local/cmakemake&&makeinstall安裝mysql5.5.13groupaddmysql//所以在這里我們要建一個msyql的用戶和組useradd-gmysqlmysql-s/usr/sbin/nologinmkdir/usr/local/mysql//創建目錄mkdir/usr/local/m
系統 2019-08-12 01:55:11 2349
RPM是RedHatPackageManager(RedHat軟件包管理工具)類似Windows里面的“添加/刪除程序”rpm執行安裝包二進制包(Binary)以及源代碼包(Source)兩種。二進制包可以直接安裝在計算機中,而源代碼包將會由RPM自動編譯、安裝。源代碼包經常以src.rpm作為后綴名。常用命令組合:-ivh:安裝顯示安裝進度--install--verbose--hash-Uvh:升級軟件包--Update;-qpl:列出RPM軟件包內的
系統 2019-08-12 01:33:14 2349
指令集是CPU體系架構的重要組成部分。C語言的語法是對解決現實問題的運算和流程的方法的高度概況和抽象,其主要為算術、邏輯運算和分支控制,而指令集就是對這些抽象的詳細支持,匯編僅僅只是是為了讓開發者更好地記住指令,但它跟CPU所認的機器碼事實上是一一相應的,因此匯編也是低級語言。CPU的指令運行一般包含取指、譯碼和運行,這是經典的三級指令運行流水線,教科書上往往以這三種過程來描寫敘述,arm7也是。可是現代的CPU設計往往使用更廣泛使用的5級流水線,也就是分
系統 2019-08-12 01:33:31 2348
所謂的時鐘時間又叫做墻上時鐘時間,它是進程運行的時鐘總量,其值與系統中同時運行的進程數有關,不過一般在討論時鐘時間的時候都是在系統中沒有其他活動進行時度量的。用戶cpu時間:就是執行用戶指令所用的時間。系統CPU時間:所謂的系統,我們知道就是在內核中執行的時間,沒錯滴,就是該進程執行內核程序所經歷的時間。查看一個進程的這三個時間并不難,只要執行命令time即可Linux用戶CPU時間、系統CPU時間、時鐘時間
系統 2019-08-12 01:32:53 2348