檔案描述符與FILE結構體

3. VFSLinux支援各種各樣的檔案系統格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁碟分割、光碟片或其它存放裝置都有不同的檔案系統格式,然而這些檔案系統都可以mount到某個目錄下,使我們看到一個統一的分類樹,各種檔案系統上的目錄和檔案我們用ls命 令看起來是一樣的,讀寫操作用起來也都是一樣的,這是怎麼做到的呢?Linux核心在各種不同的檔案系統格式之上做了一個抽象層,使得檔案、目錄、讀寫訪

size_t和ssize_t

ssize_t是什麼類型的?解釋一:為了增強程式的可移植性,便有了size_t,它是為了方便系統之間的移植而定義的,不同的系統上,定義size_t可能不一樣。     在32位系統上 定義為 unsigned int 也就是說在32位系統上是32位無符號整形。在64位系統上定義為 unsigned long

(讀書筆記)vfork()函數

       與fork()函數有所不同,fork()函數在建立一個子進程後,子進程的地址空間完全和父進程分開。父子進程是兩個獨立的進程,接受系統調度和分配的機會均等。因此父進程和子進程更像是一對兄弟。      而vfork()函數不同,vfork()函數產生的子進程和父進程完全共用地址空間,包括程式碼片段,資料區段和堆棧段。子進程對這些共用資源的修改會影響父進程,vfork()產生的更像是一個線程。再者,vfork()函數產生的進程一定比父進程先運行,子進程運行完了以後,父進程再運行。   

int main(int argc,char*argv[])中參數的意義

int main(int argc,char * argv[])argv為指標的指標argc為整數 char **argv or: char *argv[] or: char

指標,別名

最近一直在讀《linux c 程式設計大全》(吳嶽),收穫頗豐啊。一,指標與別名直接上代碼,代碼一void f1(int*p,int*q){*p=2**q;}代碼二,void

實際使用者ID,有效使用者ID,設定使用者ID

real user ID:實際使用者ID,指的是進程執行者是誰 effective user ID:有效使用者ID,指進程執行時對檔案的存取權限 saved set-user-ID:儲存設定使用者ID,作為effective user ID的副本,在執行exec調用時後能重新恢複原來的effectiv user ID. 上面這三個ID是相對於進程而言的. set-user-ID:設定使用者ID,這是相對於檔案來說的.設定了set-user-ID位的可執行程式,執行時,進程的effective

邏輯地址,線性地址,物理地址,虛擬位址

本貼涉及的硬體平台是X86,如果是其它平台,嘻嘻,不保證能一一對號入座,但是舉一反三,我想是完全可行的。 一、概念 物理地址(physical address) 用於記憶體晶片級的單元定址,與處理器和CPU串連的地址匯流排相對應。 ——這個概念應該是這幾個概念中最好理解的一個,但是值得一提的是,雖然可以直接把物理地址理解成插在機器上那根記憶體本身,把記憶體看成一個從0位元組一直到

什麼是殭屍進程

  一般是fork出子進程的父進程已經結束,子進程無法釋放資源,形成了殭屍進程.進程已經死亡,但沒有釋放系統資源,包括記憶體和一些系統資料表等,如果這樣的進程很多,會引發系統問題。用ps -el看出的進程狀態如果是Z,就是殭屍進程。  S代表休眠狀態;D代表不可中斷的休眠狀態;R代表運行狀態;Z代表僵死狀態;T代錶停止或跟蹤狀態。 

什麼才是你的不可替代性和核心競爭力(劉未鵬)

我雖不是經濟學專業,但是翻開任何一本經濟學的教材,或者直接翻開wikipedia的economics條目,都會看到物以稀為貴這條鐵律。人才作為資源的一種,也是同樣的道理。而稀缺性,換種說法也可以叫做不可替代性。一種資源越是稀缺,不可替代性就越強。再加上如果這種資源是一種具有實實在在使用價值的東西(而不是荷蘭的鬱金香泡沫),那麼其價格就會越高。問題是,如何構築你的個人知識體系,使得你的知識技能集儘可能成為不可替代的呢?孟岩先生曾發表了一篇部落格《技術路線的選擇重要但不具有決定性》[1],用令人信服

(讀書筆記)記憶體對齊,移位元運算

一,記憶體對齊1,分析需不需要對齊,只需要看到底會不會影響訪問次數。2,記憶體對齊是一種典型的空間換時間的方法。3,對齊的原則是: 1)結構體變數的首地址能夠被其最寬基本類型成員的大小所整除; 2)結構體每個成員相對於結構體首地址的位移量(offset)都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充位元組(internal adding); 3)結構體的總大小為結構體最寬基本類型成員大小的整數倍,如有需要編譯器會在最末一個成員之後加上填充位元組。struct SByte1 {

iPhone平台搭建基礎

1. iPhone手機介紹 首先需要瞭解和破解iPhone手機,下面一個文章介紹很詳細: iPhone最權威 [入門] [破解] [掃盲] [資源] [修磚] 總匯帖 http://www.weiphone.com/thread-41690-1-1.html iPhone手機手冊的中文翻譯 http://down.tgbus.com/soft/16820.shtml 2. Unix常見命令 iPhone手機的作業系統是Mac OS X,核心是unix,所以可以iPhone手機上運行unix命令。

strsep()函數

  原型:char *strsep(char **stringp, const char *delim);           功能:分解字串為一組字串。從stringp指向的位置起向後掃描,遇到delim指向位置的字元後,將此字元替換為NULL,返回stringp指向的地址。      strsep函數,這在 Windows Dev-C++ 是沒有支援的,在寫 UNIX 分析字串常常需要利用到此函式,大家可以 man strsep來看如何使用 strsep,假設我們要分析 URL Get

利用回呼函數實現泛型演算法

   回呼函數的另一個典型的作用是實作類別似C++的泛型演算法。如qsort的實現等等。   下面是我利用回呼函數的特性來寫的一個泛型函數,該函數的功能是在任意一組對象中求出其最大值,該對象可以是char型,也可以是int型......不多說了,直接看程式吧: #include <stdio.h> typedef int (*cmp_t) (void*, void*); /* 回呼函數1: 對比的是char類型對象 */int cmp_char_data(void* a, void*

pthread_cleanup_push()/pthread_cleanup_pop()的詳解

一般來說,Posix的線程終止有兩種情況:正常終止和非正常終止。線程主動調用pthread_exit()或者從線程函數中return都將使線程正

關於printf()與fflush()

用printf()輸出時是先輸出到緩衝區,然後再從緩衝區送到螢幕上。那什麼情況下才會將緩衝區裡的內容送到螢幕上呢?一,使用fflush(stdout)強制重新整理。二,緩衝區已滿。三,scanf()要在緩衝區裡取資料時會先將緩衝區重新整理。四,\n,\r進入緩衝區時。五,線程結束的時候,如果該線程裡也有printf(....);六,程式結束時。#include<stdio.h>#include<stdlib.h>int main(){int i=89;int

一個將設定檔轉換成xml的樣本程式

#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){char*p;char buf1[256];char buf2[256];char *c;int

讀書筆記,echo$?得到進程結束狀態

$?是Linucx shell中的一個內建變數,其中儲存最近一次啟動並執行進程的傳回值。這個傳回值有以下三種情況。1,程式的main函數運行結束,$?儲存main函數的傳回值。2,程式運行中調用exit函數結束執行,$?中儲存exit的參數。3,程式異常退出,$?儲存異常的出錯號。#include<stdio.h>int main(){ruturn 5;}運行該代碼後,執行echo

【讀書筆記】線程棧屬性

       線程的棧是線程的私人資料,這部分內容是不共用的。在一個進程內有多個線程,這些線程都有自己的棧,但是又都要擠在進程的虛擬位址空間內。線程之間的棧記憶體必須保證彼此不衝突線程才能正確地運行。因此,雖然大多數情況下,由系統為使用者佈建和線程的棧記憶體,但有些時候還是需要使用者親自對線程進行設定。        線程基本屬性中和線程棧有關的屬性有三個,分別是線程棧的大小、線程棧的最低地址和線程棧末尾警戒區的大小。        系統預設為一個建立的線程提供PAGESIZE個位元組的棧空間,

大端法小端法與union

      《UNXI網路編程》定義:術語“小端”和“大端”表示多位元組值的哪一端(小端或大端)儲存在該值的起始地址。小端存在起始地址,即是小端位元組序;大端存在起始地址,即是大端位元組序廢話就不說了,直接代碼#include<stdio.h>union key{int a;char s[2];}Q;int main(){Q.a=0x4142;printf("%c\n%c",Q.s[0],Q.s[1]);return 0;}執行結果:B  A。X86體系是小端模式的,比如0X8975

與進程相關的檔案結構

 在具體介紹這幾個結構以前,我們需要解釋一下檔案描述符、開啟的檔案描述、系統開啟檔案表、使用者開啟檔案表的概念以及它們的聯絡。1.檔案對象在Linux中,進程是通過檔案描述符(file

總頁數: 61357 1 .... 9143 9144 9145 9146 9147 .... 61357 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.