写在前面:内核编译和模块添加的实验(即实验二和实验三),我使用的是Ubuntu16.04LTS、Linux4.14.1。其他的实验我使用的是Ubuntu20系统、Linux5.12.19。至于原因懂的都懂——Linux高版本有关内核的资料太少,用低版本比较好做。
实验一 Linux用户界面的使用
1. 编一个C程序,其内容为实现文件拷贝的功能。基本要求:使用系统调用open/read/write...;
#include<stdio.h>
#include<fcntl.h>
#include<stdlib.h>
#include<unistd.h>
int main(int argc, char* argv[])
{
if(argc < 3)
{
printf("input fail\n");
exit(-1);
}
int fd1 = open(argv[1], O_RDONLY);
if(fd1 == -1)
{
perror("open fail");
exit(1);
}
int fd2 = open(argv[2], O_CREAT | O_RDWR, 0664);
if(fd2 == -1)
{
perror("open fail");
exit(1);
}
char c;
int len = read(fd1, &c, sizeof(char));
while(len)
{
write(fd2, &c, len);
len = read(fd1, &c, sizeof(char));
}
close(fd1);
close(fd2);
return 0;
}
2. 编一个C程序,其内容为分窗口同时显示三个并发进程的运行结果。要求用到Linux下的图形库。 (gtk/Qt) 基本要求:三个独立子进程,各自窗口显示;
--------------分割线--------------
家人们不好意思 2024年登陆csdn才想起来这篇2022年没写完的草稿
由于已经换电脑了 之前的代码也不在了 这篇草稿就直接发出来吧 不想每次编辑新文章都弹出来草稿提示。。。