APUE讀書筆記-第14章-進階I/O

14.1 引言*進階I/O包括非阻塞I/O、記錄鎖、系統V流機制、I/O多路轉換(select和poll函數)、readv和writev函數以及儲存映射I/O(mmap)14.2 非阻塞I/O*非阻塞I/O使我們可以調用open、read和write這樣的I/O操作,並使這些操作不會永遠阻塞14.3 記錄鎖*記錄鎖(record

dlopen與動態連結程式庫的依賴

有兩個動態連結程式庫,其中一個依賴了另一個定義的函數,使用dlopen的時候,需要加上RTLD_GLOBAL。 動態庫一,life,定義了一個life函數。gcc -shared -Wl,-soname,liblife.so.1 -o liblife.so.1.0 life.c---------------------------------------------------------------------#include <stdio.h>#include

bootloader和bootstrap的區別

bootloader和bootstrap的區別在 《embedded linux primer 》上看到的,其實還有一些分歧和不精確的地方,比如bootstrap 和bootstrap loader似乎在PC上還有區別,不過還是不影響理解了http://www.devbone.com/leadbbs/MINI/Default.asp?100-2246-0-0-0-0-0-a-.htm又如RedBoot(RedHat Embedded Debug and

特殊格式報文的實現

    The RTP header has the following format:    0                   1                   2                   3    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |V=

Get ip address from an interface name

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/ioctl.h> #include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#include

virsh的一些使用

1.  建立guestcreate  domain.xmlIn the background, a copy of the XML file is copied to the /etc/libvirt/qemu directory and the new KVM is officially defined.官方的xml

Example of the SO_REUSEADDR Option

quoted from http://www.docs.hp.com/en/B2355-90136/ch03s01.html This option is AF_INET socket-specific. SO_REUSEADDR enables you to restart a daemon which was killed or terminated.This option modifies the rules used by bind to validate local

IA32保護模式所包含的內容

進入保護模式是現代作業系統的基礎,那保護模式都包含哪些內容呢?在這裡列舉一些,雖然不全面,但也基本夠用了。 1. GDT 因為進入保護模式後傳統的定址方式發生了變化,所以使用GDT是CPU進入保護模式啟動並執行最小條件。2. LDT 3. 頁式儲存4. 中斷和異常5. 特權級變換 最簡單來說,只要cr0寄存器的0位置1,CPU就進入了保護模式。但是此時的CPU的功能還是很弱的,並不能充分使用保護模式下的種種優勢。所以需要各種機制配合這樣才能更好發揮CPU給系統軟體帶來的硬體支援。

[遊泳] 5 tips for Beginner freestylers

About The FreestyleStroke關於自由泳 Freestyle is afantastic stroke. When you are competent at the stroke it's easy, fluid, smoothand fast. If you only swim breast stroke at the moment you'll find it feelscompletely different - freestyle is much more

啟動進程所需要的基本條件

     進程是現代電腦系統啟動並執行最小單位,所以沒有進程也不能稱之為作業系統。      當系統啟動後,設定了GDT, IDT進入了保護模式後,需要哪些東西才能讓進程跑起來呢?其實簡單說來進程產生的目的並不是要讓程式跑起來,而是要讓一個系統上有多個進程一起跑。因為如果一個系統上只有一個所謂的“進程”在跑,那就沒有必要儲存再恢複進程的運行環境了。     好,來看看都要加哪些東西才能夠讓進程跑起來。1.TSS 2. 進程體本身3. 進程表     

另類的結構體賦值文法

再看linux kernel代碼的時候發現的東東 static struct inet_protocol tcp_protocol = {    handler:    tcp_v4_rcv,    err_handler:    tcp_v4_err,    next:       IPPROTO_PREVIOUS,    protocol:   IPPROTO_TCP,    name:       "TCP"}; 開始不曉得啥意思,原來是這樣的。 struct inet_protocol{

autotest server使用

1 安裝2. 添加host進入admin interface 添加一個host, 可以使用ip地址或者url記得將server機器autotest的ssh key 拷貝到host的root使用者下。3. 命令列上執行測試../server/autoserv -m 9.3.190.254 -r results/sleep -c ../client/tests/sleeptest/control4. 查看結果文本的./tools/scan_results.py

Structure of IA-32 IBM PC compatible MBR and partition record

Quoted from http://en.wikipedia.org/wiki/Master_boot_record Structure of a Master Boot RecordAddressDescriptionSizeinbytesHexOctDec000000000Code Area440(max. 446)01B80670440Optional Disk signature401BC0674444Usually Nulls; 0x0000201BE0676446Table of

中斷處理的幾個條件

    中斷處理之所以這麼重要是因為當中斷髮生時,所有啟動並執行進程都將被打斷。 這就需要在中斷過程中保護進程的運行環境,從使用者態切換到核心態,執行核心程式,最後恢複進程運行狀態,跳轉到使用者態運行進程。必要的時候還需要進行進程切換。  這樣的話就基本知道中斷處理要做哪些事情了。1. 保護進程運行環境 和 恢複進程運行環境     這是由一系列的push和pop完成的。2. 賦值tss.esp0    這個esp0在前一篇中講過了,這個值表示了將要執行的進程表的高地址。3. 核心棧 的 

How to apply the Kernel patch & How to generate a Kernel patch

How to apply the kernel patch Code View:bash> cd /usr/srcbash> wget www.kernel.org/pub/linux/kernel/people/akpm/patches/X.Y/X.Y.Z/X.Y.Zmm2/X.Y.Z-mm2.bz2Apply the patch:bash> cd /usr/src/linux-X.Y.Z/bash> bzip2 -dc ../X.Y.Z-mm2.bz2 |

不要做浮躁的嵌入式系統工程師

1. 不要看到別人的回複,第一句話就說:給個代碼吧!你應該想想為什麼。當你自己想出來再參考別人的提示,你就知道自己和別人思路的差異。 2. 初學者請不要看太多的書那會誤人子弟的。先找一本好書系統的學習。很多人用了很久都是只對部分功能熟悉而已,不系統還是不夠的。 3. 看協助。不要因為很難,而自己又是初學者所以就不看;協助永遠是最好的參考手冊,雖然協助的文字有時候很難看懂,或不夠直觀。 4. 不要被一些專用詞彙所迷惑;最根本的是先瞭解最基礎知識。 5.

Process Context and Interrupt Context

The kernel accomplishes useful work using a combination of process contexts and interrupt contexts.  Kernel code that services system calls issued by user applications runs on behalf of the corresponding applicationprocesses and is said to execute

設定 詢問 /dev/net/tun的裝置特性

#include <linux/if_tun.h>#include <sys/types.h>#include <sys/ioctl.h>#include <sys/stat.h>#include <fcntl.h>#include <err.h>#include <stdio.h>static struct {unsigned int flag;const char *name;} known_flags[]

驅動程式使用tasklet機制

驅動程式在初始化時,通過函數task_init建立一個tasklet,然後調用函數tasklet_schedule將這個tasklet放在tasklet_vec鏈表的頭部,並喚醒後台線程ksoftirqd。當後台線程ksoftirqd運行調用__do_softirq時,會執行在中斷向量表softirq_vec裡中斷號TASKLET_SOFTIRQ對應的tasklet_action函數,然後tasklet_action遍曆tasklet_vec鏈表,調用每個tasklet的函數完成非強制中斷操作。

關於骰子的一道演算法題(期望、求和、錯位相減)

海爺和我share了一個很有意思的演算法題:FROM:http://ilewen.com/questions/1534一個骰子,6面,1個面是 1, 2個面是2, 3個面是3, 問平均擲多少次能使1,2,3都至少出現一次!首先要知道這個題求什麼,最先直接沒理解這題可以翻譯為,一個骰子,6面,1個面是 1, 2個面是2, 3個面是3,隨機扔骰子,在第x次時3個數都出現,求這個x的期望(也就是扔無數次,x的平均值是多少)思路:第一二次肯定不可能出現這種情況第x(x >

總頁數: 61357 1 .... 13734 13735 13736 13737 13738 .... 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.