2017孟启贤实验四Linux下的C语言编程.doc

2017孟启贤实验四Linux下的C语言编程.doc

ID:57393810

大小:350.50 KB

页数:11页

时间:2020-08-15

2017孟启贤实验四Linux下的C语言编程.doc_第1页
2017孟启贤实验四Linux下的C语言编程.doc_第2页
2017孟启贤实验四Linux下的C语言编程.doc_第3页
2017孟启贤实验四Linux下的C语言编程.doc_第4页
2017孟启贤实验四Linux下的C语言编程.doc_第5页
资源描述:

《2017孟启贤实验四Linux下的C语言编程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告课程名称Linux系统实践__实验项目Linux下的C语言编程实验仪器PC___________系别计算机学院___专业网络工程____班级/学号网1702/学生姓名孟启贤_____实验日期5.13______成绩___________________指导教师李艳平____实验四Linux下的C语言编程实验类别:设计型实验时数:6学时开课单位:计算机学院实验地点:健翔校区计算中心一、实验目的通过本实验练习,使学生掌握有关文件管理与文件操作的内容。首先要熟悉在LINUX系统下文件系统的构建方法;其次要熟练掌握在LINUX环境下用C语言进行高级编程的方法(即有关文件操作的系统调用的使用),

2、进而充分了解LINUX文件系统中shell命令的实现原理以及用到的系统调用。二、实验环境操作系统:任何Unix/Linux或MAC编译器:gcc三、预备知识1、关于系统调用和库函数C语言支持一系列的库函数的调用,其中最基本的是studio库函数。事实上,库函数只是C语言在较高层次上调用的方式,系统调用是更低层次的与C语言的界面,是内核提供给用户调用的函数。2、LINUX环境下系统调用和库函数的异同⑴C程序使用系统调用的语句和调用库函数的语句形式完全相同,但是二者运行的环境和运行机制截然不同。⑵从运行环境来看,库函数使用依赖于所运行的用户环境,程序调用库函数时,它运行的目标代码是属于程序的,程序

3、处于“用户态”执行;而系统调用的使用不依赖于它运行的用户环境,是LINUX内核提供的低层服务,系统调用时所执行的代码是属于内核的,程序处于“核心态”执行。⑶程序库函数的调用最终还是要通过LINUX系统调用来实现,库函数一般执行一条指令,该指令(操作系统陷阱operatingsystemtrap)将进程执行方式变为核心态,然后使内核为系统调用执行代码。四(1)、实验内容本实验要求在LINUX/UNIX环境下用C语言完成SHELL命令的编写,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用。内容如下:1、编程实现lnk命令,执行格式:lnkf1f2f3。具体要求如下:⑴分别

4、使用link()和symlink()为文件f1(任意)创建其硬链接文件f2和符号链接文件f3。⑵分别使用stat()和lstat()调用给出文件f2和f3的索引节点号、权限、存放该文件的设备号及文件修改时间,比较其异同。说明原因。#include#include#include#include#includeintmain(intargc,charconst*argv[]){structstatbuf;if(argc!=4){printf("inputerror");return0;}

5、if(link(argv[1],argv[2])==-1){printf("linkerror");return0;}if(symlink(argv[1],argv[3])==-1){printf("symlinkerror");return0;}if(stat(argv[2],&buf)==-1){printf("statf2error");return0;}printf("statf2");printf("索引号节点号:%ld",buf.st_ino);printf("权限:%o",buf.st_mode);printf("设备号:%ld",buf.st_dev

6、);printf("文件修改时间:%ld",buf.st_mtime);if(stat(argv[3],&buf)==-1){printf("statf3error");return0;}printf("statf3");printf("索引号节点号:%ld",buf.st_ino);printf("权限:%o",buf.st_mode);printf("设备号:%ld",buf.st_dev);printf("文件修改时间:%ld",buf.st_mtime);if(lstat(argv[2],&buf)<0){printf("lstatf2error");r

7、eturn0;}printf("lstatf2");printf("索引号节点号:%ld",buf.st_ino);printf("权限:%o",buf.st_mode);printf("设备号:%ld",buf.st_dev);printf("文件修改时间:%ld",buf.st_mtime);if(lstat(argv[3],&buf)<0){printf("lstatf3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。