当前位置: 首页 > news >正文

绿色郑州网站wordpress phpcms 开发

绿色郑州网站,wordpress phpcms 开发,it外包wordpress模板,做页面设计的网站信号量(信号灯集) 1> 信号灯集主要完成进程间同步工作,将多个信号灯,放在一个信号灯集中,每个信号灯控制一个进程 2> 每个灯维护了一个value值,当value值等于0时,申请该资源的进程处于阻…

信号量(信号灯集)

1> 信号灯集主要完成进程间同步工作,将多个信号灯,放在一个信号灯集中,每个信号灯控制一个进程

2> 每个灯维护了一个value值,当value值等于0时,申请该资源的进程处于阻塞状态,直到其他进程将该灯中维护的value值增加到大于0

有关信号灯集的API

创建key值

#include <sys/types.h>

#include <sys/ipc.h>

key_t ftok(const char *pathname, int proj_id);

创建信号灯集

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/sem.h>

int semget(key_t key, int nsems, int semflg);

信号灯集控制函数

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/sem.h>

int semctl(int semid, int semnum, int cmd, ...);

申请和释放信号灯的资源函数

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/sem.h>

int semop(int semid, struct sembuf *sops, size_t nsops);

库的概念

库在系统中是一个二进制文件,他是由XXX.c(不包含main函数)的原文件编译而来,其他程序要使用该源文件中的函数时,只需要在编译时链接上该库即可,无需使用该源文件进行联合编译。这样可以保证知识产权的安全性。

库分为静态库和动态库,在不同的操作系统中,静态库和动态库的格式不同

在windows下:

静态库:XXX.lib

动态库:XXX.dll

在linux下:

静态库:libXXX.a

动态库:libXXX.so

静态库

概念

静态库是由XXX.c(不包含main)的源文件编译生成的一个名为 libXXX.a 的二进制文件,当需要使用该源文件中的相关函数时,只需在编译时链接上该库,无需使用源文件进行联合编译,也能生成可执行程序。

静态体现在:当编译生成可执行程序时,会将静态库整体全部放入可执行程序中,也就是每个可执行程序都完整拥有静态库。使用库中函数时,无需到其他地方找函数实现,直接使用即可。效率较高,但是,可执行程序体积较大

静态库的制作

准备程序代码

test.h

#ifndef __TEST_H__

#define __TEST_H__

int sum(int m, int n);

#endif

test.c

int sum(int m, int n)

{

                return m+n;

}

main.c

#include<myhead.h>

#include"test.h"

int main(int argc, const char *argv[])

{

                printf("sum = %d\n", sum(3,7)); //10

                return 0;

}

静态库的制作

gcc -c test.c -o test.o         //只编译不链接,生成二进制文件

ar -crs libtest.a test.o         //依赖于二进制文件生成静态库

如果使用多个二进制文件生成一个静态库

ar -crs libtest.a test.o test1.o test2.o ...

ar:用于创建或操作静态库

c:创建静态库

r:替换或覆盖库中同名文件

s:重置静态库

使用静态库

gcc 主程序.c   -L 库的路径   -l库名   -I头文件路径

例如:gcc main.c -L . -ltest -I .

动态库

概念

动态库是由XXX.c(不包含main)的源文件编译生成的一个名为 libXXX.so 的二进制文件,当需要使用该源文件中的相关函数时,只需在编译时链接上该库,无需使用源文件进行联合编译,也能生成可执行程序。

动态体现在:当编译生成可执行程序时,会将动态库中的函数索引编译到可执行程序中,当使用该库中的函数时,需要通过索引找到动态库所在的位置,然后调用该库中的函数。多个可执行程序可以共享同一个动态库,所以动态库也叫共享库。效率较低,单可执行程序体积较小。

动态库的制作

准备文件

test.h

#ifndef __TEST_H__

#define __TEST_H__

int sum(int m, int n);

#endif

test.c

int sum(int m, int n)

{

                return m+n;

}

main.c

#include<myhead.h>

#include"test.h"

int main(int argc, const char *argv[])

{

                printf("sum = %d\n", sum(3,7)); //10

                return 0;

}

生成动态库

gcc -fPIC -c test.c -o test.o            //-fPIC忽略文件位置,将test.c只编译不链接生成test.o

gcc -shared test.o -o libtest.so         //生成动态库

gcc -shared test.o test1.o test2.o -o libtest.so       //多个.o文件共同生成一个动态库

也可以将上述两条指令合成一条

gcc -fPIC -shared test.c -o libtest.so

使用动态库

gcc 主程序.c -L 库的路径 -l库名 -I 头文件路径

例如:gcc main.c -L . -ltest -I .

http://www.yayakq.cn/news/804748/

相关文章:

  • 巩义网站建设哪家专业网站建设系统服务机构
  • 西宁网站建设君博解决给wordpress首页添加一个公告
  • 贵州新站优化河间市网站建设价格
  • 定制网站建设费用预算东莞企业网站建设多少钱
  • 南坪网站建设哪里好网页版梦幻西游能交易吗
  • 开封网站优化优化 保证排名
  • 个人网站 网站名称什么软件可以发布广告信息
  • 烟台网站建设找三硕科技司法局网站建设方案
  • 网站出现转站怎么办网站建设费用预算
  • 如何建立公司网站模块电脑网站视频怎么下载
  • 西樵建网站短视频创作平台
  • 网站实现用户登录做自媒体小视屏哪个网站好
  • 绍兴网站制作方案新手学建设网站
  • 做cpa项目用什么网站wordpress创建目录失败
  • 网站建设企业建站方案深圳品牌馆设计公司
  • 做折线图网站互联网推广引流公司
  • 吉林手机版建站系统信息免费网站推广网站在线
  • wordpress mp3 缓存深圳百度关键字优化
  • 投票网站怎么做的注册自己的网站
  • 惠州网站建设 鑫建筑公司简介模板范文
  • 网站免费视频网站建设在电子商务中的作用
  • 网站改版对seo的影响毕业设计代做的网站好
  • 青岛工程建设管理信息网站企业网站建设方案效果
  • 建设银行官方网站入口找印度人做网站
  • 电商网站建设的特点营销网站开发哪家强
  • jsp网站建设代码西安千锋教育培训机构怎么样
  • 网站建设数据安全的意义做网站如何兼职
  • php网站开发模式有哪些帝国做视频网站
  • 餐饮加盟网站怎么做阿里云网站建设教程视频
  • 住建部禾建设部是一个网站吗vi设计说明