作業系統實習課(四) -檔案管理- 實驗室:720A 助教:鄧執中.

Slides:



Advertisements
Similar presentations
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
Advertisements

图说 毕业生档案 学生工作部 2016 年 5 月. 毕业生档案 毕业前 文字记载 书面材料 家庭情况政治思想 身体状况学习成绩 高校毕业前文字记载的书面材料 用人单位选拔、聘用毕业生的重 要人事依据 工作后人事档案的基础和雏形 什么是毕业生档案?
第二框 生命科技与生命伦理.
南宁市中小学生学籍信息化管理系统 用户培训手册
閱讀 ~ 悅讀 ~ 越讀 國文第二週.
南山中學 102學年度 性別平等教育週性別教育 性騷擾防治.
高端楼盘工程招(议) 标管理方案 成本管理中心
第九章 文件系统 (一)文件系统的基本概念 (二)文件的逻辑结构与存取方法 (三)文件的物理结构 (四)文件目录结构 (五)文件的共享与保护
南京市中等职业学校 2013级人才培养方案 编制说明.
关于市场营销的分析 ——以九阳豆浆机为例 品牌经营——让每一个家庭都拥有一台九阳豆浆机 营销管理——采取文化、概念、网络等营销组合
為什麼要讀書?.
课程体系改革及工作过程系统化课程建设整体设计与实施
第二节 留 数 一、留数的引入 二、利用留数求积分 三、在无穷远点的留数 四、典型例题 五、小结与思考.
教育部補助計畫經費動支應行注意事項 報告單位:主 計 室 104年10月.
第五节 表格处理 创建表格 表格的编辑与格式化.
第三单元 单元写作学案 确立自信 学习反驳.
农事学实践教程 主讲:XXXX 作物繁种技术.
授课教师简历 刘付才,男,中学高级教师,亳州一中南校体 育教研组长,全国体育优质课一等奖获得者,华佗 五禽戏第五十八代传承人;长期从事五禽戏教学和 研究工作,参与创编了国家级课题“校园五禽戏”; 2014年全国学生运动会展示中获得优秀表演奖; 2015年指导的五禽戏传人进行的五禽戏教学获得全 国一等奖,编著的《华佗五禽戏之简易健身操》即.
闲言碎语.
二十 石钟山记.
洪涝灾害重点传染病的预防 江苏省疾病预防控制中心 汪华.
小 桔 灯 市场赢利能力与战略 主讲:杨贤耀.
第一章 语言文字运用 专题五  挖掘隐含信息,准确实现图文转换.
基于操作系统的编程复习 张玉宏
践行新时期广东精神 推进广东公路文化繁荣与发展 ——关于广东省公路文化建设与实践的思考
第 5 章 文件I/O操作.
第二章 信息的获取 2.1 获取信息的过程与方法.
新员工职业化培训课程 主讲人 人力资源部 二零零五年六月.
Linux 的進階檔案處理.
© 2000 Wind River Systems, Inc.
複習 struct score_Type{ int chinese,english; }; struct my_Type{
C File System.
计算概论 第二十一讲 文件操作 北京大学信息学院.
編譯環境介紹.
第三章 文本编辑器vi.
第七章. 文件系统 (lab5).
第7章 Linux环境编程.
第10章 文件操作.
第10章 文件操作.
黃印良 本教材引用自 作者:Edward Lee
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
第1章、系統軟體 作者:陳鍾誠 旗標出版社.
程式設計 博碩文化出版發行.
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
Linux 操作系统 Vim 编辑器的使用.
Linux 文件操作——系统调用和标准 IO 库
Chapter 8 Use Linux Text Editor VBird 2005/08/04
如何製作 PowerPoint 簡報 做得迅速又漂亮.
編譯程式設計 期末專題說明 V1.1 May 2004.
实验一、进程控制 一、实验目的 1、加深对进程的理解,进一步认识并发执行的实质; 2、分析进程争用资源现象,学习解决进程互斥的方法;
第一节 大数定律 一、问题的引入 二、基本定理 三、典型例题 四、小结.
序及第0章.
第十三讲 文件流与 输出输入重载.
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
领导艺术与方法 适合对象:课长级以上人员 人力资源部 李晓红 2006/6/12
第7章 输入/输出流 文件和I/O流概述 标准I/O流的对象及其成员函数 文件流.
教育部補助計畫經費動支應行注意事項 報告單位:主 計 室 107年11月6日.
SOCKET( ).
C標準輸出入函數庫 與 作業系統.
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
实验二:添加Linux系统调用及熟悉常见系统调用
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab4.
2015年雪佛兰经销商7-8月夏季市场活动激励政策 执行手册及模板
作業一: 安裝Linux於btrfs上 中正大學 作業系統實驗室 指導教授:羅習五
嵌入式Linux编程环境.
Word 2010 文書處理技巧 圖資中心資訊組 李訓榮.
《操作系统设计与实现》 Linux系统编程.
Presentation transcript:

作業系統實習課(四) -檔案管理- 實驗室:720A 助教:鄧執中

期末考 6/24(三)下午 1:10~3:00 範圍:Ch5,Ch7,Ch12,Ch13 地點:電機大樓 204。 地點:電機大樓 204。 PS:Close book,請攜帶學生證。

複習 1.創建.c檔: vim XXXX.c -第2堂課因為vi不好用所以安裝了vim編輯器,所以不要再打成 vi了!! 不要再打成vi了!! 不要再打成vi了!! -記得後面的.c 不然無法編譯 2.編輯檔案: -按i進入插入模式,Esc退出模式 -進入插入模式後,操作跟FB聊天相同 -編輯完之後,按esc退出插入模式並按shift+;進入指令模式,輸 入wq後按下enter。(=存檔 (w)+離 開(q))

3.編譯檔案: gcc XXXX.c –o XXXX -gcc是linux的C編譯器之一,-o指令的意思是我們要把編譯完 的.exe檔取名為XXXX 4.一般來說如果檔案是放在環境變數path路徑下只要輸入XXXX按下 enter即可執行(系統會直接到path路徑去找檔案),但是我們不在 /path下的資料夾創檔,所以要給他路徑,請輸入 ./a/b/b(路徑名) XXXX(執行檔名) ,在linux中所有的東西都是檔案和目錄,在我們 進入 cygwin之後都會在使用者的主目錄/中,如果你沒有進到別 的目錄去創檔案,就直接打上./XXXX 按下enter即可執行

低階檔案存取 我們開啟的process都會伴隨者檔案描述子(file descriptors) 檔案描述子用來存取檔案和設備 檔案描述子以正整數表示 當一個程式開始時通常都開啟以下三的檔案描述子 0:標準輸入(鍵盤) 1:標準輸出(螢幕) 2:標準錯誤輸出(螢幕) precess關閉時會連帶關閉所有檔案描述子的連接

write 原型: #include<unistd.h> size_t write(int files, const void *buf, size_t nbytes); int files:檔案描述子號碼 const void *buf:要寫入的佔存器 size_t nbytes:要寫入的位元組數目 write會將buf前面n bytes位元組寫入此描述子代表的檔案中,並 回傳寫入的位元組數量,如果沒寫入任何資料回傳0,錯誤回傳-1

範例:simple_write.c 將字串Here is some data寫入1號描述子中(加上\n共18字) 1號描述子會自動將資料輸出到螢幕

read 原型: #include<unistd.h> size_t read(int files, const void *buf, size_t nbytes); read會從files連接的檔案中讀取n bytes的資料並存放到buf中,回 傳讀取到的位元組數量,若沒有讀取到資料則回傳0,錯誤回傳-1

範例:simple_read.c 把buffer中的字串寫入1號檔案描述子 使用echo指令把hello word傳到simple_read.exe中的0號描述子 再用read把0號描述子的內容讀到buffer,最後把buffer寫入1號

使用” < “將simple_write.c傳到simple_read的0號,再由simple_read 印出前面的128個字元

open 為檔案或設備建立一個新的檔案描述子,並回傳其號碼。如果失 敗則回傳-1 新的描述子都會挑選最小、未使用的號碼 原型: #include<fcntl.h> #include<sys/types.h> (某些UNIX系統需要) #include<sys/stat.h> (某些UNIX系統需要) int open(const char *path, int oflags); int open(const char *path, int oflags,mode_t mode);

const char *path:”要開啟存取的檔案名稱” int oflags: O_RDONLY:唯讀模式 O_WRONLY:唯寫模式 O_RDWR:可讀可寫模式 可與or運算子( | ) 連接 O_APPEND:將資料寫道檔案結尾 O_TRUNC:放棄現存的內容,設定檔案長度為0 O_CREAT:產生檔案,如有需要可在mode指定權限 mode_t mode:

lseek 設定檔案描述子讀寫的位置 原型: #include<unistd.h> #include<sys/types.h> off_t lseek(int fildes, off_t offset, int whence); int fildes:檔案描述子號碼 off_t offset:指定位移量 int whence: SEEK_SET:offset是一個距離開頭的絕對位置 SEEK_CUR:offset是一個距離目前位置而言的相對位置 SEEK_END:是一個距離檔案結尾而言的相對位置

close 用來中止檔案描述子與檔案的關係,成功回傳0;失敗回傳-1 一個process能開的檔案描述子是有限的 原型: #include<unistd.h> int close(int fildes);

實做: 利用system call把file.in拷貝到file.out 1&3: 利用open創建file.in與.out檔 2: 把123456789寫入.in檔 4: 印出in與out所獲得的描述子號碼 5&6: 使用lseek設定從in的第3號(0 1 2 3)字元開始讀;從out的第2號(0 1 2)字 元開始寫 7: 用while迴圈重複讀寫工作,檔案 描述子會記錄目前寫讀的位置,下次 執行時會從下一個字元開始 結果: file.out內容: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15