作業系統上機作業 使用系統呼叫實現mycat

2021-08-21 00:23:26 字數 989 閱讀 6193

$ cat /etc/passwd 

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

...$ ./mycat /etc/passwd

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

實現思路:通過main函式接受要開啟的檔案,呼叫open開啟它,通過stat函式獲取該檔案的大小,然後將檔案的內容讀取出來,輸出到螢幕上。

實現**:

#include

#include

#include

#include

#include

#include

int main(int argc,char *argv)

fd=open(argv[1],o_rdonly);

if(fd<0)

stat(argv[1],&st);

fsize=st.st_size;

buffer=(char*)malloc((1+fsize)*sizeof(char));

if(!buffer)

read(fd,buffer,fsize);

write(1,buffer,fsize);

close(fd);

return

0;}

執行結果

作業系統 系統呼叫

由作業系統提供的功能,通常應用程式本身是無法實現的。例如對檔案進行操作,應用程式必需通過系統呼叫才能做到,因為只有作業系統才具有直接管理外圍裝置的許可權。又如程序或執行緒間的同步互斥操作,也必需經由作業系統對核心變數進行維護才能完成。從下到上看乙個完整的計算機系統 物理硬體 os核心 os服務 應用...

作業系統(六)系統呼叫

在前幾篇文章中曾經提到過系統呼叫程式介面,並提到系統呼叫使應用程式請求作業系統服務的唯一方式。下面再來更進一步地學習一下。目錄 1.6 系統呼叫 1.6.1 系統呼叫 1.6.2 系統呼叫的具體使用場景 1.6.3 系統呼叫的過程 系統呼叫 是作業系統提供給應用程式 程式設計師 程式設計人員 使用的...

作業系統(3)系統呼叫

作業系統作為使用者和計算機硬體之間的介面,需要向上提供一些簡單的服務。主要包括命令介面和程式介面。其中程式介面由一組系統呼叫組成。1 命令介面 允許使用者直接使用 聯機命令介面 使用者說一句,系統做一句。離線命令介面 使用者說一堆,系統做一堆。2 程式介面 允許使用者通過程式間接使用 由一組系統呼叫...