Linux編程簡介——VI

VI是Linux/Unix下標配的一個純字元介面的文字編輯器。由於不支援滑鼠功能,也沒有圖形介面,相關的操作都要通過鍵盤指令來完成,需要記憶大量命令。因此很多人不大喜歡它,但同時由於鍵盤的方式往往比滑鼠來得快,一旦熟練後用起來是有種非常流暢的感覺的,也有人因此而非常喜歡它。不管你喜歡也好,不喜歡也好,VI是Linux的標配編輯器,很多時候你也只有這一個編輯器可用,如果要做一個Linux

Linux編程基礎——線程概述

有的時候,我們需要在一個基礎中同時運行多個控制流程程。例如:一個圖形介面的下載軟體,在處理下載任務的同時,還必須響應介面的對任務的停止,刪除等控制操作。這個時候就需要用到線程來實現並行作業。和訊號處理函數的控制在處理完訊號之後就結束不同的時,而多線程的控制流程程可以長期並存,作業系統會在各線程之間調度和切換,就像在多個進程之間調度和切換一樣,但建立線程開銷要比進程小得多。因此,線程往往也被稱作輕量級的進程。由於同一進程的多個線程共用同一地址空間,資料區段是共用的,如果定義一個全域變數,在各線程中

Linux編程基礎——進程概述

進程式控制制塊 在Linux中,每個進程在核心中都有一個進程式控制制塊(PCB)來維護進程相關的資訊,它通常包含如下資訊:進程id。系統中每個進程有唯一的id,在C語言中用pid_t類型表示,其實就是一個非負整數。 進程的狀態,有運行、掛起、停止、殭屍等狀態。 進程切換時需要儲存和恢複的一些CPU寄存器。 描述虛擬位址空間的資訊。 描述控制終端的資訊。 當前工作目錄(Current Working Directory)。 umask掩碼。 檔案描述符表,包含很多指向file結構體的指標。

Linux編程基礎——GDB(設定斷點)

啟動GDB後,首先就是要設定斷點,程式中斷後才能調試。在gdb中,斷點通常有三種形式:斷點(BreakPoint): 在代碼的指定位置中斷,這個是我們用得最多的一種。設定斷點的命令是break,它通常有如下方式:break <function>    在進入指定函數時停住break <linenum>    在指定行號停住。break +/-offset    在當前行號的前面或後面的offset行停住。offiset為自然數。break

Linux編程基礎——後台進程

後台啟動預設情況下,進程是在前台啟動並執行,這時就把shell給佔據了,我們無法進行其它操作。對於那些沒有互動的進程,很多時候,我們希望將其在後台啟動,可以在啟動參數的時候加一個'&'實現這個目的。    tianfang > run &    [1] 11319    tianfang >進程切換到背景時候,我們把它稱為job。切換到後台時會輸出相關job資訊,以前面的輸出為[1] 11319例:[1]表示job

Linux編程簡介——動態連結程式庫

傳統方式下,庫函數的連結是在編譯器完成的,所有相關對象在編譯的時候被整合成一個可執行檔。與此相比,我們也可以把對庫函數的連結載入延遲到程式啟動並執行時期,也就是我們所稱作的動態連結。動態連結的優點

Linux編程基礎——處理序間通訊

每個進程各自有不同的使用者地址空間,進程之間要交換資料必須通過在核心中開闢緩衝區,從而實現資料共用。管道 管道是一種最基本的IPC機制,由pipe函數建立:    int pipe(int filedes[2]);

Linux編程基礎——Socket編程

Linux下的Socket編程大體上包括Tcp Socket、Udp Socket即Raw Socket這三種,其中TCP和UDP方式的Socket編程用於編寫應用程式層的socket程式,是我們用得比較多的,而Raw Socket則用得相對較少,不在本文介紹範圍之列。TCP Socket基於TCP協議的用戶端/伺服器程式的一般流程一般如下:它基本上可以分為三個部分:一、建立串連:

Linux編程簡介——靜態連結庫

有時我們需要將一組代碼編成一個庫,從而方便其複用。例如,我們調用的STL和系統函數都是以這種方式提供的。另外,當項目工程較大時,為了使其模組化方便分工,有時也需要將其建立自己的連結庫。連結庫按照其連結方式可以分為動態連結程式庫和靜態連結庫兩種,本文主要介紹一下靜態連結庫的建立方式。以一個簡單的代碼為例,這裡有兩個檔案main.c和stack.c,這裡打算把stack.c作為一個lib供main.c調用。    /* stack.c */    char stack[512];    int

Linux編程簡介——gcc

在Linux環境下,我們通常用gcc將C代碼編譯成可執行檔,如下就是一個簡單的例子:代碼檔案:hello.c    #include<stdlib.h>    #include<stdio.h>    void main(void)     {         printf("hello world!\r\n");     }可以通過如下指令來編譯出一個可執行檔:    gcc

Linux編程基礎——GDB(入門)

調試是開發過程中一項不可或缺的工作,在Linux編程中,通常使用gdb來調試我們的c/c++程式,由於gdb可介紹的東西比較多,這裡將分幾篇文章介紹,網上有篇文章介紹的非常詳細,值得收藏:用GDB偵錯工具(一)、(二)、(三)、(四)、(五)、(六)、(七)。 前期準備 在程式編譯的時候,函數名、變數名會被相應的記憶體位址所代替,但這些記憶體位址對於我們來說是不可讀的。我們往往需要需要根據函數名、變數名來尋找實際的地址,從而讀取其值。

最近打算寫一些Linux環境編程相關的文章

好幾年沒有接觸Linux環境下編程了,好多東西都有點生疏了。趁著現在有空打算把相關的一些技能重拾一下,順手寫一些相關的文章加深印象。因為不是寫書,也受到許多外部因素限制,可能介紹不會很系統和詳細,不過大都是一些基礎知識,對於新手入門應該還是有點協助的(因為我也相當於重學嘛^_^),感興趣的朋友可以看一下:相關文章如下(持續更新中):Linux編程簡介——VILinux編程簡介——gccLinux編程簡介——靜態連結庫Linux編程簡介——動態連結程式庫Linux編程簡介——MakefileLin

Linux編程基礎——Makefile

前面我們已經介紹過了如何通過gcc編譯代碼組建檔案,但是,當項目較多的時候,往往則需要一個自動化的編譯工具輔助我們完成這項操作。像Windows那樣通過Ctrl+F5即可一鍵完成項目所有編譯工作。Makefile文法基礎 在Linux下,自動化編譯工具是通過make命令來完成的(一些工具廠商也提供了它們自己的make命令,如gmake等),make命令的基本格式如下:    make [-f makefile]

Linux編程基礎——訊號

基本概念訊號在Linux中是一個比較常見的概念,例如我們按Ctrl+C中斷前台進程,通過Kill命令結束進程都是通過訊號實現的。下面就以Ctrl+C為例簡單的說明訊號的處理流程:使用者按下Ctrl-C,這個鍵盤輸入產生一個硬體中斷。 該進程的使用者空間代碼暫停執行,CPU從使用者態切換到核心態處理硬體中斷。 終端驅動程式將Ctrl-C解釋成一個SIGINT訊號,記在該進程的PCB中(也可以說發送了一個SIGINT訊號給該進程)。

Linux編程基礎——GDB(查看資料)

查看棧資訊 當程式被停住了,首先要確認的就是程式是在哪兒被斷住的。這個一般是通過查看調用棧資訊來看的。在gdb中,查看調用棧的命令是backtrace,可以簡寫為bt。    (gdb) bt    #0 pop () at stack.c:10    #1 0x080484a6 in main () at main.c:12也可以通過info stack命令實作類別似的功能(我更喜歡這個命令):    (gdb) info stack    #0 pop () at stack.c:10

Linux編程基礎——檔案讀寫

緩衝I/O和非緩衝I/O

Fedora8 Linux下安裝mapguide

下面是碧水軒寫的關於在Fedora Linux下安裝MapGuide OpenSource 2.0的文章,在這裡轉帖一下,希望對使用Linux版MapGuide OpenSource的童鞋們有協助。 對於AIMS的Linux安裝可以參考在Linux上安裝Autodesk Infrastructure Map Server

Ubuntu Linux Server 7.04 安裝日記

(未完成)基礎情境因為工作需要一台新的研發專用的伺服器,需要跑一些研發用的服務,比如subversion, bugzilla, mediawiki,

Notes for Advanced Linux Programming – 3. Processes

文章目錄 3.1.1. Using system3.1.2. Using fork and exec 3. ProcessesEach process is identified by its unique process ID Every process has a parent process. Processes are arranged in a tree, with the init process at its root

Notes for Advanced Linux Programming – 1. Getting Started

文章目錄 1.1.1. Create the source code files1.1.2. Compiling a Single Source File1.1.3. Linking Object Files1.3.1. Compiling with Debugging Information1.3.2. Running GDB 1. Getting Started1.1. Compiling with GCC1.1.1. Create

總頁數: 3662 1 .... 1143 1144 1145 1146 1147 .... 3662 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.