操作系统实训复习笔记(1)

2024-06-24 13:04

本文主要是介绍操作系统实训复习笔记(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

Linux vi/vim编辑器(简单)

(1)vi/vim基本用法。

(2)vi/vim基础操作。

进程基础操作(简单)

(1)fork()函数。

写文件系统函数(中等)

​编辑

(1)C语言读取文件。

(2)C语言写入文件。

1、write()函数。

 读文件系统函数(简单)

(1)read()函数。


作者本人的操作系统实训复习笔记

Linux vi/vim编辑器(简单

(1)vi/vim基本用法。
  • 启动vi/vim编辑器,同时打开文件testFile,可以这样编写命令。" vi testFile " 或者 " vim testFile "。
  • 保存并退出:" wq "。
  • 进入底线命令模式:" : " 。
  • " ESC " 与 " i " 互相切换。
(2)vi/vim基础操作。
  • 光标移动到某一行时:按 " dd " 删除该行,按 " yy " 复制该行,按 " p " 粘贴。
  • (从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2)" 1,$s/word1/word2/g "。
  • " 输入:1,3 w oldFileCpy.txt 后回车 " 。将第1行到第三行复制到指定文件里。

进程基础操作(简单

(1)fork()函数。
  • " fork() "函数是已经定义好的,题目中直接调用即可。" fork() "函数通过系统调用创建一个与原来进程几乎一样的进程,这个新进程叫做 "子进程 ",而原来的进程叫做" 父进程 ",父与子进程一起向下执行代码。
  • 返回值为"负值"——>创建子进程失败。(如果出现错误,fork返回一个负值

  • 返回值为"0"——>返回到新创建的子进程。(在子进程中,fork返回0

  • 返回值为"正值"——>返回父进程或调用者,该值包含新创建的子进程的进程ID。(fork返回子进程的ID

  • fork的特性:一次调用,两次返回

 pid_t pid = fork();if(pid==0){printf("bye! ");}else if(pid>0){printf("bye! ");}

写文件系统函数(中等)

(1)C语言读取文件。
  • read() 成功,则返回读到的字节数(重点)。
  • 如果已达到结尾,则返回0。
  • 若出错,返回-1。

(要填写的关键部分代码)

while ( (readbytes = read(resource_fd,buffer,FILESIZE) ) >0 )
(2)C语言写入文件。
1、write()函数。
  • ssize_t write(int fd, const void *buf, size_t count);
  • fd:要写入的文件地方
  • buf:要写入的信息所在的缓存
  • count:要写入的字节数

(要填写的关键部分代码)

while ( ( writebytes = write(destination_fd,p,readbytes) )>0)

 读文件系统函数(简单)

(1)read()函数。
  • ssize_t read(int fd, void *buf, size_t count);
  • fd:文件描述符
  • buf:保存读入信息的缓存
  • count:要读取的字节数

(要填写的关键部分代码)

//请使用read函数将其读入buffer中n = read(fd,buffer,sizeof(buffer)-1);

这篇关于操作系统实训复习笔记(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090224

相关文章

可视化实训复习篇章

前言: 今天,我们来学习seaborn库可视化,当然,这个建立在Matplotlib的基础上,话不多说,进入今天的正题吧!当然,这个是《python数据分析与应用》书中,大家有需求的可以参考这本书。 知识点: Matplotlib中有两套接口分别是pyplot和pyylab,即绘图时候主要导入的是Matplotlib库下的两个子模块(两个py文件)matplotlib.pyplot和matp

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。  从广义上说,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并使计算机具有自己的特生。这里所说的其他软件包括系统实用程序(system utility)、应用程序、shell以及公用函数库等

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

复习2-20240624

vscode 使用 Javabean (封装性) public class Demo01 {/*1.原则 : 字母 数字 $ _ 中文 除了 这五个 其它都不可以2. 细则 : 数字 不能 开头%hbviunh &hfiureh )nhjrn 7487j -ni +hbiu tgf h

LVGL快速入门笔记

目录 一、基础知识 1. 基础对象(lv_obj) 2. 基础对象的大小(size) 3. 基础对象的位置(position) 3.1 直接设置方式 3.2 参照父对象对齐 3.3 获取位置 4. 基础对象的盒子模型(border-box) 5. 基础对象的样式(styles) 5.1 样式的状态和部分 5.1.1 对象可以处于以下状态States的组合: 5.1.2 对象

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信