[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

  •  文化

  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

     保健/养生
     体育/运动
     手工/DIY
     休闲/爱好
     英文原版书
     港台图书
     研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学
  • 計算機操作繫統實驗指導(第3版)
    該商品所屬分類:計算機/網絡 -> 操作繫統/繫統開發
    【市場價】
    662-960
    【優惠價】
    414-600
    【作者】 郁紅英、李春強、王寧寧、趙曉永、武磊、劉亞輝 
    【所屬類別】 圖書  教材  研究生/本科/專科教材  工學圖書  計算機/網絡  操作繫統/繫統開發  其他 
    【出版社】清華大學出版社 
    【ISBN】9787302489108
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302489108
    叢書名:21世紀高等學校計算機專業核心課程規劃教材

    作者:郁紅英、李春強、王寧寧、趙曉永、武磊、劉亞輝
    出版社:清華大學出版社
    出版時間:2018年07月 


        
        
    "

    產品特色
    編輯推薦
    實驗指導+知識點學習指導+典型例題分析+自測題 
    內容簡介
    為了幫助學生更好地學好操作繫統,本書從實驗和課程兩個方面對學生進行學習指導。
    操作繫統課程的實驗環節一直是操作繫統教學的難點,本書設計了Windows和Linux兩個操作繫統、C和Java兩種計算機語言的實驗供讀者選擇和參考,提供一些編程實例,以此加深學生對操作繫統原理的領會和對操作繫統方法的理解,並且使學生在程序設計方面得到基本訓練。
    課程指導方面,本書對操作繫統課程所涉及的基本概念、基本理論等知識點進行學習指導,對重點知識點配有典型例題分析,並設計了一些自測題供學生進行自我學習測試。
    本書的使用對像是開設操作繫統課程的相關專業的本科生、具有一些操作繫統基本知識並想進一步了解操作繫統內部編程的讀者。本書可作為普通高等院校操作繫統實驗指導書和復習參考資料。
    目錄
    目錄




    篇Windows繫統下C實驗指導

    第1章Visual C 開發環境介紹

    1.1Visual C 概述

    1.1.1Visual C 簡介

    1.1.2Visual C 6.0的主要特性

    目錄


     


     


     


     


    篇Windows繫統下C實驗指導


     


    第1章Visual C 開發環境介紹


     


    1.1Visual C 概述


     


    1.1.1Visual C 簡介


     


    1.1.2Visual C 6.0的主要特性


     


    1.1.3Visual C 6.0的窗口


     


    1.2Visual C 6.0控制臺程序


     


    1.2.1Visual C 6.0控制臺程序的建立


     


    1.2.2Visual C 6.0工程的文件組成


     


    1.3MSDN概述


     


    1.3.1MSDN簡介


     


    1.3.2MSDN使用


     


    第2章Windows的進程管理


     


    2.1實驗一: 線程的創建與撤銷


     


    2.1.1實驗目的


     


    2.1.2實驗準備知識: 相關API函數介紹


     


    2.1.3實驗內容


     


    2.1.4實驗要求


     


    2.1.5實驗指導


     


    2.1.6實驗總結


     


    2.1.7源程序


     


    2.1.8實驗展望


     


    2.2實驗二: 線程的同步


     


    2.2.1實驗目的


     


    2.2.2實驗準備知識: 相關API函數介紹


     


    2.2.3實驗內容


     


    2.2.4實驗要求


     


    2.2.5實驗指導


     


    2.2.6實驗總結


     


    2.2.7源程序


     


    2.2.8實驗展望


     


    2.3實驗三: 線程的互斥


     


    2.3.1實驗目的


     


    2.3.2實驗準備知識: 相關API函數介紹


     


    2.3.3實驗內容


     


    2.3.4實驗要求


     


    2.3.5實驗指導


     


    2.3.6實驗總結


     


    2.3.7源程序


     


    2.3.8實驗展望


     


    2.4實驗四: 使用命名管道實現進程通信


     


    2.4.1實驗目的


     


    2.4.2實驗準備知識: 相關API函數介紹


     


    2.4.3實驗內容


     


    2.4.4實驗要求


     


    2.4.5實驗指導


     


    2.4.6實驗總結


     


    2.4.7源程序


     


    2.4.8實驗展望


     


     


     


     


     


     


     


     


     


     


    目錄


     


     


     


     


     


    計算機操作繫統實驗指導(第3版)


     


     


    第3章Windows的內存管理


     


    3.1實驗一: 動態鏈接庫的建立與調用


     


    3.1.1實驗目的


     


    3.1.2實驗準備知識: 動態鏈接庫介紹


     


    3.1.3實驗內容


     


    3.1.4實驗要求


     


    3.1.5實驗指導


     


    3.1.6實驗總結


     


    3.1.7源程序


     


    3.1.8實驗展望


     


    3.2實驗二: 繫統內存使用統計


     


    3.2.1實驗目的


     


    3.2.2實驗準備知識: 相關數據結構及API函數介紹


     


    3.2.3實驗內容


     


    3.2.4實驗要求


     


    3.2.5實驗指導


     


    3.2.6實驗總結


     


    3.2.7源程序


     


    3.2.8實驗展望


     


    第4章Windows的文件管理


     


    4.1實驗一:  采用無緩衝方式實現文件讀/寫


     


    4.1.1實驗目的


     


    4.1.2實驗準備知識: 相關API函數介紹


     


    4.1.3實驗內容


     


    4.1.4實驗要求


     


    4.1.5實驗指導


     


    4.1.6實驗總結


     


    4.1.7源程序


     


    4.2實驗二:  采用高速緩存實現文件讀/寫


     


    4.2.1實驗目的


     


    4.2.2實驗準備知識: 高速緩存


     


    4.2.3實驗內容


     


    4.2.4實驗要求


     


    4.2.5實驗指導


     


    4.2.6實驗總結


     


    4.2.7源程序


     


    4.3實驗三: 采用異步方式實現文件讀/寫


     


    4.3.1實驗目的


     


    4.3.2實驗準備知識: 文件異步傳輸及相關API函數介紹


     


    4.3.3實驗內容


     


    4.3.4實驗要求


     


    4.3.5實驗指導


     


    4.3.6實驗總結


     


    4.3.7源程序


     


    4.4實驗四:  實現文件讀/寫的3種方式比較


     


    4.4.1實驗目的


     


    4.4.2實驗準備知識: 相關API函數介紹


     


    4.4.3實驗內容


     


    4.4.4實驗要求


     


    4.4.5實驗指導


     


    4.4.6實驗總結


     


    4.4.7源程序


     


    4.4.8實驗展望


     


    第5章Windows的設備管理


     


    5.1實驗一: 獲取磁盤基本信息


     


    5.1.1實驗目的


     


    5.1.2實驗準備知識: 相關數據結構及API函數介紹


     


    5.1.3實驗內容


     


    5.1.4實驗要求


     


    5.1.5實驗指導


     


    5.1.6實驗總結


     


    5.1.7源程序


     


    5.2實驗二: 讀/寫磁盤指定位置信息


     


    5.2.1實驗目的


     


    5.2.2實驗準備知識: 相關API函數介紹


     


    5.2.3實驗內容


     


    5.2.4實驗要求


     


    5.2.5實驗指導


     


    5.2.6實驗總結


     


    5.2.7源程序


     


    5.2.8實驗展望


     


    第二篇Windows繫統下Java實驗指導


     


    第6章Java語言概述


     


    6.1Java的產生


     


    6.2Java的特點


     


    6.3Java的現狀與前景


     


    6.4Java的體繫結構


     


    6.5Java的運行環境及配置


     


    第7章進程管理


     


    7.1實驗一: 線程的創建與撤銷(Java)


     


    7.1.1實驗目的


     


    7.1.2實驗準備知識


     


    7.1.3實驗內容


     


    7.1.4實驗要求


     


    7.1.5實驗指導


     


    7.1.6實驗總結


     


    7.1.7源程序


     


    7.2實驗二: 線程的同步(Java)


     


    7.2.1實驗目的


     


    7.2.2實驗準備知識


     


    7.2.3實驗內容


     


    7.2.4實驗要求


     


    7.2.5實驗指導


     


    7.2.6實驗總結


     


    7.2.7源程序


     


    7.3實驗三: 線程的互斥(Java)


     


    7.3.1實驗目的


     


    7.3.2實驗準備知識


     


    7.3.3實驗內容


     


    7.3.4實驗要求


     


    7.3.5實驗指導


     


    7.3.6實驗總結


     


    7.3.7源程序


     


    第8章內存管理


     


    8.1實驗一: 動態鏈接庫的建立與調用(Java)


     


    8.1.1實驗目的


     


    8.1.2實驗準備知識


     


    8.1.3實驗內容


     


    8.1.4實驗要求


     


    8.1.5實驗指導


     


    8.1.6實驗總結


     


    8.1.7源程序


     


    8.2實驗二: 繫統內存使用統計(Java)


     


    8.2.1實驗目的


     


    8.2.2實驗準備知識: 相關數據結構以及類和接口


     


    8.2.3實驗內容


     


    8.2.4實驗要求


     


    8.2.5實驗指導


     


    8.2.6實驗總結


     


    8.2.7源程序


     


    第9章文件管理(Java)


     


    9.1實驗: 文件管理與IO流(Java)


     


    9.1.1實驗目的


     


    9.1.2實驗準備知識


     


    9.1.3實驗內容


     


    9.1.4實驗要求


     


    9.1.5實驗指導


     


    9.1.6實驗總結


     


    9.1.7源程序


     


    第三篇Linux繫統實驗指導


     


    第10章Linux繫統的安裝和使用


     


    10.1安裝CentOS 7


     


    10.1.1實驗目的


     


    10.1.2實驗內容和步驟


     


    10.2Linux繫統的基本操作


     


    10.2.1實驗目的


     


    10.2.2實驗內容和步驟


     


    10.3常用的Linux命令


     


    10.3.1實驗目的


     


    10.3.2實驗準備知識: 常用的Linux命令


     


    10.3.3實驗內容和步驟


     


    10.4vi的使用


     


    10.4.1實驗目的


     


    10.4.2實驗準備知識


     


    10.4.3實驗內容和步驟


     


    10.5Linux的編輯器gcc


     


    10.5.1實驗目的


     


    10.5.2實驗準備知識


     


    10.5.3實驗內容和步驟


     


    10.6Shell程序設計


     


    10.6.1實驗目的


     


    10.6.2實驗準備知識


     


    10.6.3實驗內容和步驟


     


    第11章Linux的進程管理


     


    11.1實驗目的


     


    11.2實驗準備知識


     


    11.2.1進程控制的API


     


    11.2.2進程之間通信的API


     


    11.3實驗內容


     


    11.3.1編制實現軟中斷通信的程序


     


    11.3.2編制實現管道通信的程序


     


    11.4實驗指導


     


    11.4.1軟中斷通信算法流程圖


     


    11.4.2管道通信算法流程圖


     


    11.5實驗總結


     


    11.5.1軟中斷通信的運行


     


    11.5.2管道通信的運行


     


    11.6源程序


     


    11.6.1軟中斷通信的源程序


     


    11.6.2管道通信的源程序


     


    第12章Linux的存儲器管理


     


    12.1實驗目的


     


    12.2實驗準備知識


     


    12.2.1實時監控內存使用情況


     


    12.2.2使用Linux命令回收內存


     


    12.2.3虛擬內存實現的機制


     


    12.3實驗內容


     


    12.3.1內存的監控、檢查和回收


     


    12.3.2模擬FIFO、LRU和OPT頁面置換算法


     


    12.4實驗指導


     


    12.4.1FIFO


     


    12.4.2LRU


     


    12.4.3OPT


     


    12.5實驗總結


     


    12.6源程序


     


    第13章Linux的設備管理


     


    13.1實驗目的


     


    13.2實驗準備知識


     


    13.2.1設備驅動程序簡介


     


    13.2.2設備驅動程序與外部接口


     


    13.2.3設備驅動程序的組織結構


     


    13.3實驗內容


     


    13.3.1字符類型設備的驅動程序


     


    13.3.2塊類型設備的驅動程序


     


    13.4實驗指導


     


    13.4.1字符類型設備的驅動程序


     


    13.4.2塊類型設備的驅動程序


     


    13.5實驗總結


     


    13.6源程序


     


    13.6.1字符設備驅動程序


     


    13.6.2塊設備驅動程序


     


    第14章Linux的文件管理


     


    14.1實驗目的


     


    14.2實驗準備知識


     


    14.2.1文件結構


     


    14.2.2目錄管理


     


    14.2.3Linux的EXT4文件繫統


     


    14.2.4相關函數


     


    14.3實驗內容


     


    14.3.1設計並實現一個文件執行程序


     


    14.3.2設計並實現一個一級文件繫統程序


     


    14.4實驗指導


     


    14.5實驗總結


     


    14.6源程序


     


    14.6.1設計並實現一個文件執行程序


     


    14.6.2設計並實現一個一級文件繫統程序


     


    第15章Linux內核編譯


     


    15.1實驗目的


     


    15.2實驗準備知識


     


    15.2.1內核簡介


     


    15.2.2內核編譯涉及的相關命令和術語


     


    15.3實驗內容


     


    15.4實驗指導


     


    15.5實驗總結


     


    第四篇操作繫統學習指導和習題解析


     


    第16章操作繫統概述


     


    16.1知識點學習指導


     


    16.1.1操作繫統的定義


     


    16.1.2操作繫統的產生和發展


     


    16.1.3操作繫統的特征


     


    16.1.4操作繫統的功能


     


    16.1.5操作繫統的類型


     


    16.2典型例題分析


     


    16.3自測題


     


    16.4自測題答案


     


    16.5作業


     


    第17章進程與線程


     


    17.1知識點學習指導


     


    17.1.1進程的引入


     


    17.1.2進程的狀態及其組成


     


    17.1.3進程控制


     


    17.1.4線程


     


    17.2典型例題分析


     


    17.3自測題


     


    17.4自測題答案


     


    17.5作業


     


    第18章進程同步與通信


     


    18.1知識點學習指導


     


    18.1.1進程同步與互斥


     


    18.1.2經典進程同步問題


     


    18.1.3AND信號量


     


    18.1.4管程


     


    18.1.5進程通信


     


    18.2典型例題分析


     


    18.3自測題


     


    18.4自測題答案


     


    18.5作業


     


    第19章調度與死鎖


     


    19.1知識點學習指導


     


    19.1.1調度類型與準則


     


    19.1.2調度算法


     


    19.1.3死鎖的基本概念


     


    19.1.4死鎖的預防與避免


     


    19.1.5死鎖的檢測與解除


     


    19.2典型例題分析


     


    19.3自測題


     


    19.4自測題答案


     


    19.5作業


     


    第20章存儲管理


     


    20.1知識點學習指導


     


    20.1.1程序的裝入與鏈接


     


    20.1.2連續分配存儲管理


     


    20.1.3頁式存儲管理


     


    20.1.4段式存儲管理


     


    20.1.5段頁式存儲管理


     


    20.2典型例題分析


     


    20.3自測題


     


    20.4自測題答案


     


    20.5作業


     


    第21章虛擬存儲管理


     


    21.1知識點學習指導


     


    21.1.1虛擬存儲器的引入


     


    21.1.2請求頁式存儲管理


     


    21.1.3請求段式存儲管理


     


    21.1.4段式存儲管理與頁式存儲管理的比較


     


    21.2典型例題分析


     


    21.3自測題


     


    21.4自測題答案


     


    21.5作業


     


    第22章設備管理


     


    22.1知識點學習指導


     


    22.1.1I/O管理概述


     


    22.1.2I/O控制方式


     


    22.1.3I/O繫統


     


    22.1.4磁盤管理


     


    22.1.5緩衝管理


     


    22.2典型例題分析


     


    22.3自測題


     


    22.4自測題答案


     


    22.5作業


     


    第23章文件管理


     


    23.1知識點學習指導


     


    23.1.1文件和文件繫統


     


    23.1.2文件的結構


     


    23.1.3目錄


     


    23.1.4文件存儲空間的管理


     


    23.1.5文件存取控制


     


    23.2典型例題分析


     


    23.3自測題


     


    23.4自測題答案


     


    23.5作業


     


    附錄A試卷樣例


     


    附錄A.1試卷A


     


    附錄A.2試卷A答案


     


    附錄A.3試卷B


     


    附錄A.4試卷B答案


     


    參考文獻

    前言
    第3版前言

    隨著互聯網技術的不斷發展,Java的市場需求不斷增加,Java的面向對像及跨平臺特性,使得Java成為互聯網應用程序開發的主要程序語言,目前Java在編程語言中占據主導地位。本書第3版主要根據計算機的發展和讀者要求增加了Java語言實驗; 對Linux實驗部分進行了升級,增加了Linux 發行版介紹,將Red Hat Linux 9.0改為目前更流行的發行版CentOS 7,補充了一些Shell常用命令介紹; 另外還增加了一些習題,附錄中有兩份試卷及答案,供教師和學生參考使用。本書篇由郁紅英編寫,第二篇由王寧寧編寫,第三篇由李春強、趙曉永、武磊、郁紅英編寫,第四篇由郁紅英、劉亞輝編寫,郁紅英負責全書的統稿。另外,馮庚豹、馮琎參加了本書部分程序的編寫和調試工作,在此表示感謝。作者深知水平有限,書中難免有錯誤和不足之處,懇請同行和廣大讀者,特別是使用本書的教師和學生多提寶貴意見。
    作者2017年10月
    第3版前言

    隨著互聯網技術的不斷發展,Java的市場需求不斷增加,Java的面向對像及跨平臺特性,使得Java成為互聯網應用程序開發的主要程序語言,目前Java在編程語言中占據主導地位。本書第3版主要根據計算機的發展和讀者要求增加了Java語言實驗; 對Linux實驗部分進行了升級,增加了Linux 發行版介紹,將Red Hat Linux 9.0改為目前更流行的發行版CentOS 7,補充了一些Shell常用命令介紹; 另外還增加了一些習題,附錄中有兩份試卷及答案,供教師和學生參考使用。本書篇由郁紅英編寫,第二篇由王寧寧編寫,第三篇由李春強、趙曉永、武磊、郁紅英編寫,第四篇由郁紅英、劉亞輝編寫,郁紅英負責全書的統稿。另外,馮庚豹、馮琎參加了本書部分程序的編寫和調試工作,在此表示感謝。作者深知水平有限,書中難免有錯誤和不足之處,懇請同行和廣大讀者,特別是使用本書的教師和學生多提寶貴意見。
    作者2017年10月








    在線試讀

    Windows的設備管理


    5.1實驗一: 獲取磁盤基本信息5.1.1實驗目的
    (1) 了解磁盤的物理組織。(2) 熟悉Windows繫統如何查看磁盤相關參數。(3) 掌握Windows繫統提供的有關對磁盤操作API函數。5.1.2實驗準備知識: 相關數據結構及API函數介紹1. 相關繫統數據結構說明磁盤基本物理結構原型:
    typedef struct_DISK_GEOMETRY {
    LARGE_INTEGERCylinders;
    MEDIA_TYPEMediaType;
    DWORDTracksPerCylinder;
    DWORDSectorsPerTrack;
    DWORDBytesPerSector;
    } DISK_GEOMETRY;
    成員說明: (1) Cylinders: 磁盤的柱面數。(2) MediaType: 介質類型,如3.5英寸、1.44MB軟盤。(3) TracksPerCylinder: 每個柱面的磁道數。 (4) SectorsPerTrack: 每個磁道的扇區數。 (5) BytesPerSector: 每個扇區的字節數。 2. 相關API函數介紹(1) 文件創建。函數CreateFile()用於打開磁盤驅動器並返回一個文件句柄,這裡驅動器被當作文件來處理。有關文件操作函數的詳細說明參見4.1.2節。原型:
    Windows的設備管理




    5.1實驗一: 獲取磁盤基本信息5.1.1實驗目的
    (1) 了解磁盤的物理組織。(2) 熟悉Windows繫統如何查看磁盤相關參數。(3) 掌握Windows繫統提供的有關對磁盤操作API函數。5.1.2實驗準備知識: 相關數據結構及API函數介紹1. 相關繫統數據結構說明磁盤基本物理結構原型: 
    typedef struct_DISK_GEOMETRY { 
    LARGE_INTEGERCylinders;  
    MEDIA_TYPEMediaType;  
    DWORDTracksPerCylinder;  
    DWORDSectorsPerTrack;  
    DWORDBytesPerSector;  
    } DISK_GEOMETRY; 
    成員說明: (1) Cylinders: 磁盤的柱面數。(2) MediaType: 介質類型,如3.5英寸、1.44MB軟盤。(3) TracksPerCylinder: 每個柱面的磁道數。 (4) SectorsPerTrack: 每個磁道的扇區數。 (5) BytesPerSector: 每個扇區的字節數。 2. 相關API函數介紹(1) 文件創建。函數CreateFile()用於打開磁盤驅動器並返回一個文件句柄,這裡驅動器被當作文件來處理。有關文件操作函數的詳細說明參見4.1.2節。原型: 
    HANDLE CreateFile(
    LPCTSTR lpFileName,//指向文件名的指針
    DWORD dwDesiredAccess, //讀/寫訪問模式
    DWORD dwShareMode, //共享模式
    LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全屬性的指針
    DWORD dwCreationDisposition,//文件存在標志
    DWORD dwFlagsAndAttributes,//文件屬性
    HANDLE hTemplateFile //指向訪問模板文件的句柄
    ); 
    (2) 獲取磁盤的基本信息。函數DeviceIoControl ()用於獲取磁盤的基本信息。原型: 
    BOOL DeviceIoControl(
    HANDLE hDevice, //設備句柄
    DWORD dwIoControlCode, //操作控制代碼
    LPVOID lpInBuffer,//輸入數據緩衝區
    DWORD nInBufferSize,//輸入數據緩衝區大小
    LPVOID lpOutBuffer, //輸出數據緩衝區
    DWORD nOutBufferSize,//輸出數據緩衝區大小
    LPDWORD lpBytesReturned,//可獲取的字節計數
    LPOVERLAPPED lpOverlapped//指向OVERLAPPED結構的指針
    );  




    參數說明: ① hDevice: 目標設備的句柄,由CreateFile()函數獲得。② dwIoControlCode: 指定操作的控制信息,用該值可以辨別將要執行的操作,以及對哪類設備進行操作。該參數取值如表51所示。
    表51dwIoControlCode的值


    值描述
    IOCTL_DISK_GET_DRIVE_GEOMETRY 得到磁盤物理結構信息IOCTL_DISK_GET_PARTITION_INFO 得到磁盤分區信息FSCTL_QUERY_FAT_BPB返回FAT16或FAT12卷的前36字節FSCTL_GET_COMPRESSION獲取文件或目錄的壓縮信息
    ③ lpInBuffer: 指向一個緩衝區,該緩衝區存放指定操作所輸入的數據。④ nInBufferSize: 由lpInBuffer所指緩衝區的大小。⑤ lpOutBuffer: 指向一個緩衝區,該緩衝區存放指定操作所輸出的數據。⑥ nOutBufferSize: 由lpOutBuffer所指緩衝區的大小。⑦ lpBytesReturned: 實際輸出結果所占字節數。⑧ lpOverlapped: 指向OVERLAPPED結構的指針。返回值: 如果函數調用成功,則返回值為非0值。如果函數調用失敗,則返回值為0。若要得到更多的錯誤信息,可調用函數GetLastError()。5.1.3實驗內容編寫一個函數,根據給出的驅動器號讀取磁盤基本信息,包括磁盤的大小、該磁盤包括多少個扇區、該磁盤有多少個柱面,以及每個柱面的磁道數、每個磁道的扇區數、每個扇區包含的字節數。5.1.4實驗要求了解MSDN Library Visual Studio 6.0中提供的磁盤主要數據結構DISK_GEOMETRY中每個成員的的含義,深入理解操作繫統將設備當作文件處理的特性,理解函數CreateFile()及DeviceloControl()中每個參數的實際意義並能在本實驗中正確使用。5.1.5實驗指導在Microsoft Visual C 6.0環境下選擇Win32 Console Application選項建立一個控制臺工程文件,由於有關設備及文件操作的函數均是Microsoft Windows操作繫統的繫統調用,因此在圖51中選中An application that supports MFC單選按鈕。

    圖51建立一個MFC支持的應用程序

    本實驗要使用的主要數據結構DISK_GEOMETRY是由繫統提供的,其聲明在“#include "winioctl.h"”中,因此要將其加入到實驗程序的頭文件說明中,否則程序編譯時繫統將無法識別DISK_GEOMETRY結構。5.1.6實驗總結本實驗程序的運行結果如圖52所示。

    圖52軟盤的基本物理組成信息

    從實驗結果可以看出,對給定的磁盤驅動器中的軟盤A,本實驗能正確識別出它每個扇區有512字節,每個磁道有18個扇區,每個柱面有2個磁道,共有80個柱面,該磁盤共有2880個磁道,磁盤的大小為1.41MB。應當注意,磁盤上有一部分空間是存儲磁盤的物理信息的,這部分空間繫統是不能夠直接存取的,因此沒有編入邏輯扇區,也就是說邏輯扇區比磁盤的實際扇區數要小,因此計算出的磁盤大小是磁盤可用空間的大小,比磁盤的物理大小要小。5.1.7源程序


    //Disk_Inforamtion_Get.cpp:  Defines the entry point for the console application.


    #include "stdafx.h"
    #include "Disk_Inforamtion_Get.h"
    #include "winioctl.h"


    #ifdef_DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__; 
    #endif


    DISK_GEOMETRY disk_info; 


    HANDLE GetDiskInformation(char drivername); 


    /////////////////////////////////////////////////////////////////////////////
    //The one and only application object
    CWinApp theApp; 
    using namespace std; 


    int_tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    int nRetCode=0; 
    HANDLE Handle; 
    Handle=GetDiskInformation('A'); 
    return nRetCode; 
    }


    HANDLE GetDiskInformation(char drivername)
    {
    char device[]="\\\\.\\: "; 
    device[4]=drivername; 
    HANDLE FloopyDisk; 
    DWORD ReturnSize; 
    DWORD Sector; 
    double DiskSize; 
    FloopyDisk=CreateFile(device,
    GENERIC_READ|GENERIC_WRITE,
    FILE_SHARE_READ|FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    FILE_FLAG_RANDOM_ACCESS|FILE_FLAG_NO_BUFFERING,
    NULL); 
    if (FloopyDisk==INVALID_HANDLE_VALUE)
    printf("INVALID_HANDLE_VALUE!\n"); 
    if (GetLastError()==ERROR_ALREADY_EXISTS)
    printf("Can not Open Disk! %d\n",GetLastError()); 
    if (!DeviceIoControl(FloopyDisk,
    IOCTL_DISK_GET_DRIVE_GEOMETRY,
    NULL,
    0,
    &disk_info,
    50,
    &ReturnSize,
    (LPOVERLAPPED)NULL))
    printf("Open Disk Error! %d\n",GetLastError()); 
    printf("Disk Information: \n"); 
    printf("\t BytesPerSector:  %d\n",disk_info.BytesPerSector); 
    printf("\t SectorPerTrack:  %d\n",disk_info.SectorsPerTrack); 
    printf("\t TracksPerCylinder:  %d\n",disk_info.TracksPerCylinder); 
    printf("\t Cylinder:  %d\n",disk_info.Cylinders); 
    Sector=disk_info.Cylinders.QuadPart*
    disk_info.TracksPerCylinder*
    disk_info.SectorsPerTrack; 
    printf("\t There is %d Sectors!\n",Sector); 
    DiskSize=Sector*disk_info.BytesPerSector; 
    printf("\t Size of Disk:  %4.2f MB\n",(DiskSize)/(1024*1024)); 
    return FloopyDisk; 
    }
    5.2實驗二: 讀/寫磁盤指定位置信息5.2.1實驗目的
    (1) 了解磁盤的物理組織。(2) 掌握Windows繫統提供的有關對磁盤操作API函數。(3) 根據輸入的扇區號讀/寫指定扇區。5.2.2實驗準備知識: 相關API函數介紹1. 設置讀/寫操作的位置函數SetFilePointer()用於移動一個打開文件中的讀/寫指針,這裡磁盤設備被當作文件處理,因此用於移動文件讀/寫指針在磁盤上的位置。原型: 
    DWORD SetFilePointer(
    HANDLE hFile,//文件句柄
    LONG lpDistanceToMove,//文件指針要移動的偏移量的低32位
    PLONG lpDistanceToMoveHigh,//文件指針要移動的偏移量的高32位

    DWORD dwMoveMethod //移動起點
    ); 
    參數說明: (1) hFile: 打開的文件句柄,創建的文件必須具有GENERIC_ READ或GENERIC_ WRITE的存取權限。(2) lpDistanceToMove: 指針要移動的偏移量的低32位,用於指定移動文件指針的字節大小。如果參數lpDistanceToMoveHigh不為空,那麼lpDistanceToMoveHigh 和lpDistanceToMove兩個參數形成一個64位的值來指定移動的位置。如果參數lpDistanceToMoveHigh為空,且lpDistanceToMove是一個32位帶符號值,那麼當lpDistanceToMove為正值時,文件指針向前移動,否則向後移動。(3) lpDistanceToMoveHigh: 指針要移動的偏移量的高32位。如果不需要該參數,可將其設置為空。當該參數不為空時,該參數為文件指針的高32位的DWORD類型值。(4) dwMoveMethod: 文件指針移動的初始位置,其值如表52所示。
    表52dwMoveMethod的值


    值描述
    FILE_BEGIN 開始點為0或為文件的開始位置FILE_CURRENT 開始點為文件指針的當前位置FILE_END開始點為文件的結尾位置
    返回值: 如果函數調用成功,而且參數lpDistanceToMoveHigh為空,那麼返回值為文件指針的低32位DWORD類型值。如果參數lpDistanceToMoveHigh不為空,那麼返回值為文件指針的低32位DWORD類型值,並且高32位DWORD類型值輸出到一個long類型的參數中。如果函數調用失敗,而且參數lpDistanceToMoveHigh為空,那麼返回值為0xFFFFFFFF,若要得到錯誤信息,請調用函數GetLastError()。如果函數調用失敗,而且參數lpDistanceToMoveHigh不為空,那麼返回值為0xFFFFFFFF,但由於0xFFFFFFFF不是一個有效的低32位DWORD類型值,必須通過調用函數GetLastError()纔能判斷是否有錯誤發生。若發生錯誤,則函數GetLastError()返回錯誤值,否則返回NO_ERROR。如果新的文件指針位置是一個負值,則表明函數調用失敗,文件指針將不移動,通過調用函數GetLastError()返回的值是ERROR_NEGATIVE_SEEK。2. 讀文件讀取磁盤指定區域的內容,函數詳細說明參見4.1.2節。原型: 
     BOOL ReadFile(
    HANDLE hFile,//要讀的文件的句柄
    LPVOID lpBuffer, //指向文件緩衝區的指針
    DWORD nNumberOfBytesToRead,//從文件中要讀取的字節數
    LPDWORD lpNumberOfBytesRead, //指向從文件中要讀取的字節數的指針
    LPOVERLAPPED lpOverlapped//指向OVERLAPPED結構的指針
    ); 
    3. 寫文件該函數將數據寫入磁盤指定區域,函數詳細說明參見4.1.2節。原型: 
    BOOL WriteFile(
    HANDLE hFile,  //要讀的文件的句柄
    LPVOID lpBuffer, //指向文件緩衝區的指針
    DWORD nNumberOfBytesToWrite,//從文件中要讀取的字節數
    LPDWORD lpNumberOfBytesWritten, //指向從文件中要讀取的字節數的指針
    LPOVERLAPPED lpOverlapped//指向OVERLAPPED結構的指針
    ); 
    5.2.3實驗內容在本章實驗一的基礎上,繼續完成該實驗。編寫兩個函數,分別完成如下功能。(1) 對給定的扇區號讀取該扇區的內容。(2) 將用戶輸入的數據寫入指定的扇區。5.2.4實驗要求深入理解操作繫統將設備當作文件處理的特性,理解函數SetFilePointer()、ReadFile()及WriteFile()中每個參數的實際意義並能在本實驗中正確使用。5.2.5實驗指導在主程序中讓用戶選擇: R、W或Q,若用戶選擇R選項,則調用函數BOOL SectorRead(HANDLE Handle),完成讀給定扇區信息的功能; 若用戶選擇W選項,則調用函數BOOL SectorWrite(HANDLE Handle) 完成對給定扇區號寫入信息的功能; 若用戶選擇Q選項,則程序退出。5.2.6實驗總結用戶讀/寫扇區的情況如圖53所示。

    圖53用戶讀/寫扇區的情況

    在上面的實驗中,應用程序首先顯示軟盤的信息。
    Disk Information: 
    BytesPerSector:  512
    SectorPerTrack:  18
    TracksPerCylinder:  2
    Cylinder:  80
    There is 2880 Sectors!
    Size of Disk:  1.41 KB
    然後提示用戶進行選擇“Please Select Read or Write!Input 'R' to read, 'W' to Write,'Q' to quit!”當用戶輸入W表示要寫軟盤後,應用程序提示用戶“Please Input the Sector Number to Write to: ”輸入要寫的磁道號,當用戶輸入4表示要寫第4道後,應用程序提示用戶“Please Input the Content to Write to Disk A:: ”輸入要寫入第4道的內容,當用戶輸入要寫的內容後,應用程序提示“Write Complete!”表示寫操作完成。接著,應用程序繼續提示用戶進行選擇“Please Select Read or Write!Input 'R' to read, 'W' to Write,'Q' to quit!”當用戶輸入R表示要讀軟盤後,應用程序提示用戶“Please Input the Sector Number to Read From: ”輸入要讀的磁道號,當用戶輸入4表示要讀第4道的內容後,應用程序顯示“Content: ”後分別以字符形式和十六進制形式顯示軟盤上第4道的內容。5.2.7源程序

    //Disk_Inforamtion_Read and Write.cpp:  Defines the entry point for the console application.



    #include "stdafx.h"
    #include "Disk_Inforamtion_Get.h"
    #include "winioctl.h"


    #ifdef_DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__; 
    #endif


    DISK_GEOMETRY disk_info; 


    HANDLE GetDiskInformation(char drivername); 
    BOOL SectorRead(HANDLE Handle); 
    BOOL SectorWrite(HANDLE Handle); 


    /////////////////////////////////////////////////////////////////////////////
    //The one and only application object
    CWinApp theApp; 
    using namespace std; 


    int_tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    int nRetCode=0; 
    HANDLE Handle; 
    char Choice; 
    Handle=GetDiskInformation('A'); 


    while(TRUE)
    {
    printf("Please Select Read or Write!Input 'R' to read, 'W' to Write,'Q' to quit!\n"); 
    Choice=getchar(); 
    printf("\n"); 
    switch (Choice)
    {
    case 'W': 
    {
    if (!SectorWrite(Handle))printf("Write Sector Fail!\n"); 
    getchar(); 
    break; 
    }
    case 'R': 
    {
    if (!SectorRead(Handle))printf("Read Sector Fail!\n"); 
    getchar(); 
    break; 
    }
    case 'Q':  
    {
    exit(0); 
    break; 
    }
    default: 
    {
    printf("Input Error!,Try again please!\n"); 
    getchar(); 
    }
    }


    }
    return nRetCode; 
    }


    HANDLE GetDiskInformation(char drivername)
    {
    char device[]="\\\\.\\: "; 
    device[4]=drivername; 
    HANDLE FloopyDisk; 
    DWORD ReturnSize; 
    DWORD Sector; 
    double DiskSize; 
    FloopyDisk=CreateFile(device,
    GENERIC_READ|GENERIC_WRITE,
    FILE_SHARE_READ|FILE_SHARE_WRITE,
    NULL,
    OPEN_EXISTING,
    FILE_FLAG_RANDOM_ACCESS|FILE_FLAG_NO_BUFFERING,
    NULL); 
    if (FloopyDisk==INVALID_HANDLE_VALUE)
    printf("INVALID_HANDLE_VALUE!\n"); 
    if (GetLastError()==ERROR_ALREADY_EXISTS)
    printf("Can not Open Disk! %d\n",GetLastError()); 
    if (!DeviceIoControl(FloopyDisk,
    IOCTL_DISK_GET_DRIVE_GEOMETRY,
    NULL,
    0,
    &disk_info,
    50,
    &ReturnSize,
    (LPOVERLAPPED)NULL))
    printf("Open Disk Error! %d\n",GetLastError()); 
    printf("Disk Information: \n"); 
    printf("\t BytesPerSector:  %d\n",disk_info.BytesPerSector); 
    printf("\t SectorPerTrack:  %d\n",disk_info.SectorsPerTrack); 
    printf("\t TracksPerCylinder:  %d\n",disk_info.TracksPerCylinder); 
    printf("\t Cylinder:  %d\n",disk_info.Cylinders); 
    Sector=disk_info.Cylinders.QuadPart*
    disk_info.TracksPerCylinder*
    disk_info.SectorsPerTrack; 
    printf("\t There is %d Sectors!\n",Sector); 
    DiskSize=Sector*disk_info.BytesPerSector; 
    printf("\t Size of Disk:  %4.2f KB\n",(DiskSize)/(1024*1024)); 
    return FloopyDisk; 
    }


    BOOL SectorRead(HANDLE Handle)
    {
    char ReadBuffer[1024*16]; 
    DWORD Sector







     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部