没有合适的资源?快使用搜索试试~ 我知道了~
首页Linux系统调用实战:文件复制与并发进程
本篇文档是关于Linux系统调用实现文件复制的本科实验报告,旨在让学生深入理解Linux操作系统的工作原理,并通过实践操作提升技能。实验涉及的主要知识点包括: 1. 实验目的: - 掌握Linux操作系统的使用,包括文件系统的基本操作,如文件的读写和复制。 - 学习Linux内核代码结构,特别是系统调用接口,理解其在应用程序与内核交互中的作用。 - 实践操作系统内核级编程,通过系统调用来实现高效、底层的文件复制功能。 2. 实验环境: 使用的是Linux-2.6.20.1内核,与旧版本2.6.18.1进行了对比,这有助于了解不同内核版本对系统调用的影响。 3. 实验内容: - 文件拷贝:通过C语言编写程序,利用`fgetc`和`fputc`函数逐个字符读取源文件并写入目标文件,直至文件末尾。这是一种基本的文件操作,展示了如何使用系统提供的I/O函数进行文件复制。 - 并发执行:通过`fork`和`execv`系统调用创建子进程,实现主程序与子程序的并发执行,子程序使用GTK库进行图形用户界面的构建,展示多任务处理能力。 4. 设备驱动: 虽然文档未详细描述,但提到了通过增加设备驱动实现字符设备的驱动,这可能涉及到设备文件操作和内核空间的编程,是系统级编程的高级应用。 5. GTK任务管理器:作为额外的任务,学生还尝试利用GTK开发了一个任务管理器,这涉及到了图形用户界面的设计和事件处理,增强了学生的编程综合能力。 整个实验不仅锻炼了学生对Linux系统调用的理解,还涵盖了文件操作、进程管理、图形界面编程等多个方面,对于培养学生的编程技巧和Linux系统知识具有实际价值。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/4384086/bg3.jpg)
3
子程序则使用了 GTK 编程,在一个窗体中放置了一个滚动条,加了个文字标签以改善视
觉效果.
b.程序源码
子程序代码:
#include <gtk-2.0/gtk/gtk.h>
typedef struct _ProgressData {
GtkWidget *window;
GtkWidget *pbar;
int timer;
gboolean activity_mode;
} ProgressData;
itoa(int i,char* string)
{
int power,j;
j=i;
for(power=1;j>=10;j/=10)
power*=10;
for(;power>0;power/=10)
{
*string++='0'+i/power;
i%=power;
}
*string++='%';
*string='\0';
}//将整数转换成字符串
/* 更新进度条,这样就能够看到进度条的
移动 */
gint progress_timeout( gpointer data )
{
ProgressData *pdata = (ProgressData
*)data;
gdouble new_val;
char s[10];
/* 使用在调整对象中设置的取值范
围计算进度条的值 */
new_val =
gtk_progress_bar_get_fraction
(GTK_PROGRESS_BAR (pdata->pbar)) +
0.005;
if (new_val > 1.0)
new_val = 0.0;
/* 设置进度条的新值 */
itoa(new_val*100,s);
gtk_progress_bar_set_fraction
(GTK_PROGRESS_BAR (pdata->pbar),
new_val);
gtk_progress_bar_set_text
(GTK_PROGRESS_BAR (pdata->pbar),s);
/* 这是一个 timeout 函数,返回 TRUE,
这样它就能够继续被调用 */
return TRUE;
}
/* 清除分配的内存,删除定时器(timer) */
void destroy_progress( GtkWidget
*widget,
ProgressData *pdata)
{
gtk_timeout_remove (pdata->timer);
pdata->timer = 0;
pdata->window = NULL;
g_free (pdata);
gtk_main_quit ();
}
int main( int argc,
char *argv[])
{
ProgressData *pdata;
GtkWidget *align;
GtkWidget *separator;
剩余13页未读,继续阅读
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
librahang
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)