linux 系統呼叫

2021-08-19 15:39:41 字數 1937 閱讀 5343

檔案描述符

0       :檔案標準輸入

1       :檔案標準輸出

2       :檔案輸出出錯

example:file copy process 

open

#include

#include

int fd=open(char *fname,int how);            //return file discribe char=>0,1,2

int fd=open(char *fname,int how,mode_t mode);

file dicribechar     filename      openmode     filequanxian

開啟模式:o_rdonly-唯讀    o_wronly-只寫    o_rdwr-讀寫

o_trunc :將fd所指向的檔案內容清空  

o_creat :當開啟的檔案不存在時,自動建立該檔案,此時需要mode引數指定檔案的許可權  

o_excl:   

o_nonblock 

檔案的關閉

檔案操作完畢後必須關閉檔案:

#include

int result=close(int fd);

write系統呼叫

為了使用write系統呼叫,需要標頭檔案unistd.h,原型如下:

#include

size_t result     =   write(int filedes      ,  const void *buf,size_t nbytes)

返回實際寫入的    open操作返回的      將buf所指向的存

儲單元中大小為  

位元組大小                檔案描述符               nbytes位元組的資料寫入          

該呼叫可以用來在開啟的檔案中寫入資訊,若寫入不成功,則result=-1

read系統呼叫

#include

size_t numread=read(int filedes,const void

*buf,size_t nbytes);

該呼叫從與檔案描述符filedes相關的檔案裡讀 入nbytes個位元組的資料,並放到資料區buf裡。返回實際讀取的位元組大小。

若讀取 不成功,則nread=-1

逐個字元把乙個檔案複製到另乙個檔案

#include

#include

#include

#include

int main( )

{char c;

int in,out;

in=open("file.in",o_rdonly);

out=open("file.out",o_wronly|o_creat,s_iwusr|s_iwoth);  

while(read(in,&c,1)==1)

write(out,&c,1);

exit(0);

[student@localhost desktop]$ cat file.in

my name is andy.

hello,welcome to c.

hello,c.

[student@localhost desktop]$ touch file.out

[student@localhost desktop]$ gcc gyx.c -o gyx

[student@localhost desktop]$ ./gyx

[student@localhost desktop]$ cat file.out

my name is andy.

hello,welcome to c.

hello,c.

linux 系統呼叫

使用者應用可以通過兩種方式使用系統呼叫。第一種方式是通過c庫函式,包括系統呼叫在c庫中的封裝函式和其他普通函式。圖5.2 使用系統呼叫的兩種方式 第二種方式是使用 syscall巨集。2.6.18版本之前的核心,在include asm i386 unistd.h檔案中定義有7個 syscall巨集...

Linux系統呼叫

一 實驗目的和要求 1.學習linux核心的配置和編譯 2.深入理解linux系統呼叫 3.理解arm和x86的cpu模式 系統模式 使用者模式 的不同 4.掌握核心模組的編寫方法。二 實驗器材 1.linux實驗板卡一塊 2.5v 1a電源乙個 3.microusb線一根 4.macos一台 5....

Linux系統呼叫

linux系統呼叫 系統呼叫 system call 是使用者空間訪問核心的唯一手段,除異常和陷入外,他們是核心唯一的合法入口。通常情況下應用程式是通過應用程式設計介面api來訪問函式,而不是直接使用系統呼叫來程式設計。作業系統通常是通過中斷從使用者態切換到核心態。中斷就是乙個硬體或軟體請求,要求c...