日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

操作系统上机作业--使用系统调用实现mycat

發(fā)布時(shí)間:2023/12/1 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统上机作业--使用系统调用实现mycat 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • mycat.c的功能與系統(tǒng)cat程序相同
  • mycat將指定的文件內(nèi)容輸出到屏幕,例子如下:
  • 要求使用系統(tǒng)調(diào)用open/read/write/close實(shí)現(xiàn)
$ 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

實(shí)現(xiàn)思路:通過main函數(shù)接受要打開的文件,調(diào)用open打開它,通過stat函數(shù)獲取該文件的大小,然后將文件的內(nèi)容讀取出來,輸出到屏幕上。
實(shí)現(xiàn)代碼:

#include<stdio.h> #include<stdlib.h>#include<sys/stat.h> #include<unistd.h>#include<sys/types.h> #include<fcntl.h>int main(int argc,char *argv[]){struct stat st;int fsize;int fd;char *buffer;if(argc!=2){printf("Error:parameter wrong!\n");exit(0);}fd=open(argv[1],O_RDONLY);if(fd<0){printf("Error:open file wrong!\n");exit(0);}stat(argv[1],&st);fsize=st.st_size;buffer=(char*)malloc((1+fsize)*sizeof(char));if(!buffer){printf("Error:memory wrong!\n");exit(0);}read(fd,buffer,fsize);write(1,buffer,fsize);close(fd);return 0; }

運(yùn)行結(jié)果

總結(jié)

以上是生活随笔為你收集整理的操作系统上机作业--使用系统调用实现mycat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。