C语言编写Copy程序(Linux环境下的操作)

该博客介绍了如何在Linux下编写COPY程序,包括实验描述、相关原理与知识,以及详细的操作过程。通过strace工具监测系统调用,如read、write、open、close等,分析文件复制过程。
摘要由CSDN通过智能技术生成

COPY程序的编写

(作者:Baron_wu 禁止转载)

一、实验描述

在这个实验中,我们要做一个程序,这个程序是将一个文件的内容复制到一个目标文件。首先这个程序提示用户输入要复制的原始文件的名字,以及要复制到的目标文件的名字。
确保包括必要的错误检查,包括确保原始文件存在。再使用程序的同时我们要监视这个过程中所用到的系统调用。Linux可使用strace来完成。

二、相关原理与知识

(完成实验所用到的相关原理与知识)
系统调用的工作方式:
一般的,进程是不能访问内核的。它不能访问内核所占内存空间也不能调用内核函数。CPU硬件决定了这些(这就是为什么它被称作"保护模式")。系统调用是这些规则的一个例外。其原理是进程先用适当的值填充寄存器,然后调用一个特殊的指令,这个指令会跳到一个事先定义的内核中的一个位置(当然,这个位置是用户进程可读但是不可写的)。在Intel CPU中,这个由中断0x80实现。硬件知道一旦你跳到这个位置,你就不是在限制模式下运行的用户,而是作为操作系统的内核–所以你就可以为所欲为。
进程可以跳转到的内核位置叫做sysem_call。这个过程检查系统调用号,这个号码告诉内核进程请求哪种服务。然后,它查看系统调用表(sys_call_table)找到所调用的内核函数入口地址。接着,就调用函数,等返回后,做一些系统检查,最后返回到进程(或到其他进程,如果这个进程时间用尽)。如果你希望读

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值