Linux 下文件IO编程进程控制实验

article/2025/9/22 7:40:57

Linux 下文件IO编程&进程控制实验

一、基本I/O操作
(1).Linux的输入/输出(I/O)操作,通常为五个方面:打开,读取,写入,定位和关闭;对应的函数分别为:open()、read()、write()、lseek()、close()。他们的原型分别如下:

#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<fcntl.h>
int open(const char * pathname,int flags,mode_t mode);
ssize_t read(int fd,void *buf,size_t nbytes);
ssize_t write(int fd,const void *buf,size_t nbytes);
off_t lseek(int fd,off_t offset,int whence);
int close(int fd);

(2).基本函数的一个共同特点就是,它们都是通过(file descriptor)来完成文件I/O操作的。

open()函数中:pathname 为字符串,表示被打开的文件名称,可以包含路径;flags 为一个或多个标记,表示文件的打开方式;mode 表示被打开文件的存取权限模式。
read()和write()函数中:fd 表示文件描述符;buf 指定存储器读出数据的缓冲区;count 指定读出或写入的字节数。
close()函数:当使用完文件时可以用close关闭文件,close会让缓冲区中的数据写回磁盘,并释放文件所占的资源,若文件顺利关闭则返回0,关闭失败则返回-1,并置errno。

二、标准I/O操作
1.fopen()函数:函数原型如下:

#include<stdio.h>
FILE *fopen(const char *pathname,const char *type);

fopen()函数可以指定打开文件的路径和模式,路径由参数path指定,模式相当于open()函数中的标志位flag。
2.fclose()函数,函数原型如下:

int fclose(FILE *fp);

将缓冲区的数据写入文件中,并释放系统所提供的文件资源。

3.fread()函数和fwrite()函数:函数原型如下:

#include<stdio.h>
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream);
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);

返回值:读或写的记录数,成功时返回的记录数等于nmemb,出错或读到文件末尾时返回的记录数小于nmemb,也可能返回0。
freadfwrite用于读/写记录,参数size指出一条记录的长度,而nmemb指出要读或写多少条记录,nmemb是请求读或写的记录数,fread和fwrite返回的记录数有可能小于nmemb指定的记录数

三、实验教学和目的
1.掌握Linux文件IO编程方法;
2.掌握标准I/O和基本I/O函数的调用方法;
3.掌握进程控制编程,包括进程的创建,启动和终止;

四、实验内容
1、基本IO(非缓冲)操作编程
(1)编写一个基本IO操作的源代码,要求使用到基本IO操作的5个函数:打开、读取、写入、定位和关闭。
(2)编译上述源代码并调试通过,最后对运行结果予以分析验证。

首先是lseek(),将文件位置标记设置为从尾部偏移offset字节位置;open()则创建或打开一个文件,write()则是往文件里写了字符串,read()读取文件内容保存到buffer[ ]中,返回读取字符个数,最后是close(),关闭(fd)。

函数实现的具体功能自拟,提交源代码和对应的运行结果。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
2.标准IO(缓冲)操作编程
(1)编写一个标准IO操作的源代码,要求使用到标准IO操作的5个函数:打开、读取、写入、定位和关闭。
(2)编译上述源代码并调试通过,最后对运行结果予以分析验证。

先写后读,然后定位fseek,最后fclose,其次创建一个文件recfile。

函数实现的具体功能自拟,提交源代码和对应的运行结果。

在这里插入图片描述

在这里插入图片描述

3、进程控制编程
(1)编写程序,使用fork()函数创建子进程,理解父子进程的执行流程;

先执行了父进程,后执行了子进程,调用一次fork(),返回了两次。

在这里插入图片描述

在这里插入图片描述

(2)编写程序,使用exec函数族,掌握在程序中启动新进程的方法和流程;
在这里插入图片描述
在这里插入图片描述

此次我用的是exec函数族中的execlp函数,exec函数只有出错的时候有返回值,并没有成功的返回值,execlp中第一个ps是程序名,要在PATH环境变量中找到并执行它,第二个ps是命令行ps,等价于ps -ef。

(3)编写程序,使用exit函数,掌握进程退出函数的使用方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Exit()是用来终止进程的,程序执行到exit()时,进程无条件停止剩下的所有操作,_exit()是直接使进程停止运行,会立即退出,前面打印的信息无法完整输出。


http://chatgpt.dhexx.cn/article/2rfBem3M.shtml

相关文章

文件IO(IO编程)

一、文件IO&#xff08;IO编程&#xff09; 系统IO&#xff1a;和系统有关的IO接口函数 标准IO: 标准库里面的IO接口函数 #include <stdio.h> 目录操作&#xff1a;操作目录相关的IO接口函数 LCD屏的操作&#xff1a;刷图 TS(touch screen)触摸屏的操作:点击、滑动 二、…

I/O编程

一、标准IO 1.1、概述 标准IO 是ANSI C提供的函数接口&#xff0c;在文件IO的基础上封装出来的。任何兼容标准C库的操作系统都可以使用接口&#xff0c;具有更好的移植性。标准IO在执行时也会用到系统调用&#xff0c;为了增加内核的工作效率&#xff0c;减少资源浪费&#…

小米平板2装win10(附驱动)

前段时间在折腾着怎么给米pad2装win10&#xff0c;结果驱动什么的折腾了好久。 给米pad2装win10&#xff0c;其实就和给普通的电脑装win10差不多的步骤。 第一步&#xff0c;制作U盘启动器。工具什么的就用官方的winPE就好&#xff0c;iso就随意吧。 第二步&#xff0c;给米…

小米笔记本系统win10家庭版升级为企业版(专业版)

一.背景 新入职一家IT公司,由于公司领导层是小米粉,基本新入职的员工人手一本小米笔记本.小米笔记本默认自带的是家庭版的,由于之前公司很多人用的都是家庭版的,在某些极为特殊的软件开发情况下,家庭版的配置给开发带来了极大的困难,后来经过查资料验证企业版是不会出现这种情…

小米mix2s刷win11和android双系统

在给电脑安装系统的过程中&#xff0c;可能会因为各种原因出现windows无法安装的情况&#xff0c;我在给小米mix2s安装win11时发现出现了“计算机意外地重新启动或遇到错误&#xff0c;windows无法安装”的情况&#xff0c;下面就来教一下大家两种解决方法&#xff0c;希望可以…

小米air13.3一代的win10系统重装

仅作为记录&#xff0c;大佬请跳过 小米air的系统重装在进入bios之后&#xff0c;选择u盘启动时&#xff08;需要设置一个密码&#xff0c;然后关闭secure boot&#xff09;有点跟神船不一样&#xff0c;作为记录。 参考大佬博主文章传送门

Win10 IPv6 远程桌面连接(小米路由器)

前排广告&#xff1a;2021金三银四&#xff0c;字节跳动招人季&#xff0c;平均反馈时间仅1天&#xff01;选择覆盖达6大城市&#xff01;——2021年字节跳动飞书团队内推活动正式开启&#xff0c;岗位列表见&#xff1a;https://job.toutiao.com/s/eNtDcGu。除了这个投递连接外…

小米4A千兆刷OpenWrt_Win10

在Linux上试了一下&#xff0c;最终telnet 196.168.31.1失败&#xff0c;网上找了一些教程&#xff0c;改到win10下刷成功了。 1 先安装Pthon3 和pip3&#xff0c;然后pip3 install requests&#xff0c;不然会报错 2 win10开启telnet&#xff0c;方法简单自行百度&#xff1…

小米平板2可以装鸿蒙系统,详细教程!教你小米平板2轻松刷Win10

众所周知&#xff0c;小米平板2拥有MIUI和Windows 10两个版本&#xff0c;这两个版本在硬件上是一致的(除了机身存储空间不同)&#xff0c;所以理论上存在通刷的可能。 现在&#xff0c;有网友在MIUI论坛中共享了小米平板2刷Windows 10的教程&#xff0c;有兴趣的不妨一起来看看…

win10 下载

win10 下载 https://www.microsoft.com/zh-cn/software-download/windows10 Windows 10 2022 更新 l 版本 22H2 选择版本 以下 Windows 10 版本对于 Windows 10 家庭版和 Windows 10 专业版都有效。 如果您想验证下载数据的完整性和真实性&#xff0c;请按照以下步骤操作&…

计算机连接小米usb驱动,win10系统安装小米usb驱动的详细步骤

随着电脑的使用率越来越高&#xff0c;我们有时候可能会遇到对win10系统安装小米usb驱动进行设置&#xff0c;如果我们需要对win7系统安装小米usb驱动进行设置时&#xff0c;要怎么处理win10系统安装小米usb驱动的设置方法非常简单。 设置方法&#xff1a; 1、首先先下载小米驱…

win10 android 手机驱动下载,小米手机驱动win10驱动

小米手机usb驱动win10驱动是Win10系统专用的小米手机USB连接驱动&#xff0c;Win10电脑想要通过USB数据线与小米手机连接&#xff0c;必需安装这个驱动&#xff0c;从而可以使用电脑管理手机中的文件&#xff0c;以及进行线刷、解锁等操作&#xff0c;支持32位以及64位的Win10系…

【日常技巧】小米手机投屏至win10笔记本

最近需要多次实现自己手机与电脑的投屏&#xff0c;却又不想安装其他第三方软件&#xff0c;最终找到方法&#xff0c;做以下记录。 系统说明 手机&#xff1a;MIUI12.0.2稳定版 电脑&#xff1a;win10 前提条件 手机与电脑同处于同一wifi下 操作步骤 1.打开win10电脑投屏…

小米笔记本怎么恢复出厂的系统

买了台小米pro笔记本,中途自己重装了一次win10专业版,自己安装系统之后,自然很多电脑自带的软件和功能就没有了,比如Dolby,指纹解锁,正版的win10和office. 之前一直以为小米笔记本里面的软件都是预装在win10里面,只要有原厂的镜像就可以安装了,但是一直没找到.最近刚好系统又出…

小米笔记本pro15.6黑苹果+win10双系统/多系统

基本信息 配置,小米笔记本PRO 15.6 硬盘&#xff1a;杂牌 显卡&#xff1a;MX150/H610 CPU:i7-8550 简介&#xff1a;win10苹果双系统&#xff0c;双硬盘双系统&#xff0c;自带的pm981硬盘以前成功装过一次&#xff0c; 目前已知&#xff1a; MAC时间不同步&#xff08;…

小米pro安装win10系统

一.利用U盘做驱动盘 格式化u盘为NTFS格式官网下载https://www.microsoft.com/zh-cn/software-download/windows10点击立即下载工具 下载完成双击打开--->接受---->下一步---->为另一台电脑创建安装介质---->下一步--->下一步---->下一步---->出现所选U盘…

win10系统小米妙享中心,在手机可搜索到电脑,与之跨屏协作

在体验了小米妙享中心之后&#xff0c;发现非小米笔记本每次投屏不能直接在手机上直接投送到电脑屏幕&#xff0c;而只能在电脑打开手机画面&#xff0c;进行对手机操作&#xff0c;我们进行电脑伪装将我们的电脑变成小米笔记本&#xff0c;之后就可以在小米妙享中心发现我的设…

小米笔记本重装win10系统教程

U盘装机大师一键重装小米笔记本win10系统 小米笔记本自打推出以来&#xff0c;一直以非常高的性价比而深受大众的喜爱&#xff0c;加上其简约的外观&#xff0c;无论是价格还是外型都给了用户购买它的理由&#xff0c;对于电脑的话&#xff0c;重装系统是不可避免的事&#xf…

小米笔记本安装Win 10历程

今天要给小米笔记本&#xff08;128G 固态硬盘&#xff09;重新安装Win 10系统&#xff0c;本想着通过自带的恢复方式进行恢复 但是&#xff0c;通过此种方法进行还原后&#xff0c;电脑的 “设置” 点击不了了。无奈之下&#xff0c;只能通过U盘重新安装系统。 1. 通过U盘做系…

pc端和移动端自适应, 做响应式网页

一套代码能够兼容适配不同的屏幕设备&#xff0c;内容不变布局效果变了&#xff0c;这样的网页就是响应式网页 响应式和自适应的区别&#xff1a; 响应式是一套代码通过检测视口分辨率展示不同的页面布局效果样式&#xff0c;是指据屏幕的大小自动的调整页面的展现方式&#…