没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论








操作系统第四次实验
一、主要内容:
(1) 程序库基础,静态库与动态库的生成,开发与使用
(2) Linux 系统调用
(3) 使用共享内存进行进程间通信
(4) 在进程中创建新线程、在一个进程中同步线程之间的数据访问、修
改线程属性、在同一个进程中,从一个线程中控制另一个线程
二、具体过程:
问题 1:
(1)查阅相关资料,了解静态库和动态库的生成、开发、使用。并完成以下实
验
制作静态库:
① 分别编写 add.h add.c main.c

② add.h 包含加法函数的定义 int add(int p1, intp2)
③ add.c 包含加法函数的实现
④ 对 add.c 进行编译生成目标文件 add.o
⑤ 执行 ar 命令,生成 libadd.a
⑥ 编 写 main.c 文 件 , 通 过 include add.h 头文件和 gcc 编译实现对
libadd.a 中的加法函数的调用
A.编写 main.c.文件

B.使用 gcc 编译实现对 libadd.a 中的加法函数的调用
C.运行成功
制作动态库:
① 分别编写 add.h add.c main.c
② add.h 包含加法函数的定义 int add(int p1, intp2)
③ add.c 包含加法函数的实现

④ 对 add.c 进行编译生成共享库 libadd.so
A.使用命令 gcc -fPCI -c add.c 对 add.c 进行编译生成 add.o
B.使用命令 gcc -shared -o libadd.so add.o 生成动态库 libadd.so
⑤ 编写 main.c 文件,通过 include add.h 头文件和 gcc 编译实现对 libadd.so
中的加法函数的调用
A.编写 main.c 文件
B.对 main.c 进行编译并链接到动态库 libadd.so
C.运行 add 函数
审核要求:
提交全部程序代码,代码思路规范清晰,命名规范。
通过带参数运行可执行文件 main,如 main 3 5,得出的输出是 3 + 5 = 8
源代码:

(1)add.h
#ifndef ADD_H
#define ADD_H
int add(int p1,int p2);
#endif
(2)add.c
#include"add.h"
int add(int p1,int p2){
return p1+p2;
}
(3)main.c
#include"add.h"
#include<stdio.h>
int main(int argc,char *args[]){
if(argc!=3){
printf("need two number");
return 0;
}
int t=add(*args[1]-'0',*args[2]-'0');
printf("%d\n",t);
return 0;
}
(2)查阅相关资料,了解 Linux 系统调用函数,并完成以下实验
检测文件当前的读写权限,如果文件具有读权限,则打印可读信息,如果
有可写权限,则打印可写信息。否则返回错误信息。
如果打开文件为只读文件,则输出”read only”;
如果文件是只写文件,则输出”write only”;
如果文件可读可写,则输出”read write”;否则输出”unknown mode”
提示:可用 fcntl()函数实现。
1.在 file.c 文件中编写代码:
剩余21页未读,继续阅读
资源评论

zxrgfruh
- 粉丝: 0
- 资源: 2

上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
已下载
下载帮助

相关资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
