原创 HDOJ2015

Problem Description 有一個長度爲n(n<=100)的數列,該數列定義爲從2開始的遞增有序偶數,現在要求你按照順序每m個數求出一個平均值,如果最後不足m個,則以實際數量求平均值。編程輸出該平均值序列。 Input 輸入數據

原创 POSIX IPC之共享內存

【代碼】 申請一個共享內存區,attach到進程當中,然後通過fork創建子進程。理論上子進程和父進程是各自有在自己的內存空間,對變量的修改互不影響的,但是共享內存中的數據由子進程修改以後,父進程可以得知。 #include <stdio.

原创 HDOJ2005

Problem Description: 給定一個日期,輸出這個日期是該年的第幾天。 Input: 輸入數據有多組,每組佔一行,數據格式爲YYYY/MM/DD組成,具體參見sample input ,另外,可以向你確保所有的輸入數據是合法的

原创 UNIX文件的實現——索引節點

POSIX沒有強制磁盤上的文件採取任何特定的表示方法,但是傳統的UNIX文件都是按照改進的樹狀結構來實現的。目錄項中包含一個文件名 和一個定長結構的引用(索引節點)。索引節點包含與文件長度、文件位置、文件所有者、創建時間、最後訪問時間、最後

原创 Linux信號和阻塞

1. 信號掩碼——被阻塞的信號集 每個進程都有一個用來描述哪些信號傳送來將被阻塞的信號集,如果某種信號在某個進程的阻塞信號集中,則傳送到該進程的此種信號將會被阻塞。當前被進程阻塞的信號集也叫信號掩碼,類型爲sigset_t。每個進程都有自己

原创 重定向dup2的本質

在前一面一篇《UNIX I/O---再談文件描述符 》的基礎上,學習一下dup2函數。先看下面的代碼示例:   #include <stdio.h>#include <sys/stat.h>#include <fcntl.h>#includ

原创 圖解管道重定向過程

在前面一篇文章《shell管道重定向程序的實現》裏面已經大致講過管道重定向的實現。例如ls | sort 或者ls -l | less等命令,都是可以通過管道重定向來實現的,管道就可以看作2個進程之間的緩衝區,允許2個進程以不同的速度進行讀

原创 sed簡介(二)

接着介紹命令吧。 (7)寫文件:w命令gaolu@gaolu-desktop:~$ sed -n '/100/w newfile1' datafile -----將包含模式100的行寫到文件newfile1內,取消打印。這樣執行命令以後通過