linux 实验4,Linux下的实验4 C编程

a0f021e01dd7ee28ab721cf52eb7d6ab.gif

Linux下的实验4 C语言编程实验类型: 设计课程的开学单位: 计算机学院计算机科学与技术系实验时间: 6课时实验地点: 建祥校区计算机中心1.实验目的学生掌握与文件管理和文件操作有关的内容. 首先,您必须熟悉LINUX系统下文件系统的构造方法. 其次,您必须熟悉LINUX环境下C语言的高级编程方法(即使用与文件操作有关的系统调用),然后充分了解LINUX文件系统中的shell命令. 实现及其使用的系统调用. 二,实验环境操作系统: 任何Unix / Linux和Sun Solaris或Windows系列应用程序系统: gcc编译器. 如果操作系统是Windows系列,则还需要相应的仿真环境. 3.基础知识1.关于系统调用和库函数C语言支持一系列库函数调用,其中最基本的是Studio库函数. 实际上,库函数只是在较高级别上调用C语言的方式,而系统调用是与C语言的较低级别接口,并且是内核提供给用户调用的函数. 2. LINUX环境中系统调用和库函数之间的异同(1)C程序用于调用系统函数的语句与用于调用库函数的语句完全相同,但是两个程序的操作环境和操作机制完全不同.

cfc2cc643dd3b100e873787fee2d1875.png

⑵从运行环境的角度来看,库功能的使用取决于运行的用户环境. 当程序调用库函数时c语言 线程安全系统调用,它运行的目标代码属于该程序,并且该程序在“用户模式”下执行;使用系统调用时,它不依赖于运行它的用户环境. 它是LINUX内核提供的低级服务. 调用系统时执行的代码属于内核,并且程序在“核心状态”下执行. (3)库函数的调用必须通过LINUX系统调用来实现. 库函数通常执行一条指令. 该指令(操作系统陷阱)将进程执行模式更改为核心状态,然后使内核执行系统调用的代码. . IV. 实验内容该实验要求在LINUX / UNIX环境下用C语言编写三个特定的SHELL命令,这些命令基本上涉及与文件操作相关的系统调用,而在LINUX / UNIX文件系统中更常见. 内容如下: (1)编写复制命令并执行格式: 复制孔的字节. 该程序可能涉及系统调用: read(),write(),open(),creat(),close(),lseek()-编程renam(在LINUX下重命名)命令,其功能是实现重命名. 执行格式: renam filea fileb;其中filea是源文件,而fileb是目标文件.

204308516.jpg

在执行程序时c语言 线程安全系统调用,应显示命令行的所有参数,并给出重命名前后两个文件的大小,索引节点号和最后一次状态更改的时间. 程序可能涉及的系统调用: read(),write(),open(),stat(),close(),link(),unlink()⑶编程实现: 从某处的A文件读取(部分)n字符(连续的),写入B文件中的某个位置. 执行格式: a.out A xn B y; 2file1file2file3功能: 将文件1和文件2的内容合并到文件3中,并且两者之间应该有30个. x是文件A任何位置; y是B文件的任何位置;程序可能涉及的系统调用: read(),write(),open(),close(),lseek()五,实验要求1,做实验准备,传递查找信息,读取系统提供的帮助文件;和其他渠道,以了解该实验中使用的系统调用和各种技术方法. 充分利用您所学的知识,并预设尽可能多的想法. 2.写出实验报告,内容为: 1简要说明实验的目的,任务和设备. 2编写实施的技术手段和关键代码.

rYBzE3.png

3总结设计中的问题和解决方案. 4写下实验经验和收获. 六,使用系统调用时的注意事项下面列出了一些与错误处理差异有关的系统调用和库函数,需要通过编程积累更多的内容. (1)对于Studio库中的函数,发生错误时将返回预定义的常量EOF或NULL;许多库函数通常在发生错误时返回0或–1;一些库函数返回某些错误代码. ⑵系统调用的错误处理相对简单. 每个系统调用在发生错误时均返回–1,并在调用成功时返回0(或其他具有特定含义的整数值). LINUX系统调用将错误代码放入名为error的外部变量中,并将头文件error.h包含在程序中以获取错误的错误代码. 3

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/tongxinshuyu/article-207685-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值