linux 应用开发
wangzhibo_csdn
我花开后百花杀
展开
-
守护进程
守护进程的特点:1.不能占用控制终端 (后台运行)2.独立于控制终端(通过命令 : ps -aux 查看tty列)3.周期性4.摆脱父进程的影响;分析及解决办法:1.不能占用控制终端 (后台运行):办法1:可执行程序+&方法2:通过创建子进程来充当守护进程,父进程退出,这样的子进程就可以在后台运行;范例代码:#include #inclu原创 2017-07-29 21:22:14 · 203 阅读 · 0 评论 -
Netfilter_queue 知识总结
Netfilter_queue 知识总结函数名称:struct nfnl_handle *nfnl_open(void) 函数说明:开启nfnetlink 处理程序函数参数:void函数功能:该函数创建一个nfnetlink 处理程序,此函数创建NFNETLink处理程序,这是需要建立的用户空间与NFNETLink系统之间的通信。 返回值:成功 指向n...原创 2018-10-13 14:08:49 · 5945 阅读 · 3 评论 -
STDIN_FILENO 与stdin的区别
STDIN_FILENO 与stdin的区别 1.STDIN_FILENO的作用STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。操作系统一级提供的文件API都是以文件描述符来表示文件。STDIN_FILENO就是...转载 2018-06-27 09:57:56 · 402 阅读 · 0 评论 -
动态链接库的制作
动态链接库的制作第一步:gcc -c mylib.c -o mylib.o第二步: gcc -shared -fPIC mylib.o -o libmylib.so3.将制作好的 libmylib.so 复制到/usr/lib-fPIC 使输出的对象模块按照可重定位地址方式生成的。-shared 指明产生动态链接库...原创 2018-06-26 23:58:28 · 302 阅读 · 0 评论 -
静态链接库的制作
静态链接库的制作第一步 : 产生 *.o 文件gcc -c mylib.c -o mylib.o 第二步:将 *.o 文件打包成 lib*.a ar cqs libmylib.a mylib.o 第三步 :将制作好的libmylib.a 复制到/usr/lib使用静态库-lname : GCC 在链接时候,默认只会链接C函数库,而对于其他的函数哭=库,需要使用 ...原创 2018-06-26 23:57:43 · 359 阅读 · 0 评论 -
信号量
#include #include #include #include //包含信号量定义的头文件//联合类型semun定义union semun{ int val; struct semid_ds *buf;unsigned short *array;}; //函数声明 //函数:设置信号量的值 static i转载 2017-08-02 20:39:51 · 281 阅读 · 0 评论 -
有名管道(命名管道)
有名管道又称为FIFO 文件,我们对有名管道的操作可以采用操作文件的方法,如使用 open readwrite 等,有名管道适用于任何两个进程间通信。FIFO 文件和普通文件的对比1.读取FIFO文件的进程只能以“O_RDONLY”方式打开FIFO 文件。2.写FIFO文件的进程只能以“O_WRONLY”的方式打开FIFO文件。3.FIFO文件里面的内容被读取后原创 2017-08-02 20:41:15 · 1400 阅读 · 0 评论 -
信号通信
1.信号类型:linux系统支持的所有信号均定义在/usr/include/asm/signal.h常见的信号有:SIGKILL:杀死进程SIGSTOP:暂停进程SIGCHLD:子进程停止或者结束时用来通知父进程函数学习:1》函数原型:int kill(pid_t pid ,int sig);头文件:#include#include函原创 2017-08-02 20:45:56 · 436 阅读 · 0 评论 -
IPC的7中通信方式
1.有名管道2.无名管道3.信号4.信号量5.消息队列6.socket7.共享内存原创 2017-07-31 22:01:27 · 311 阅读 · 0 评论 -
epoll机制
1.epoll_create(int size)函数和epoll_create1(int flags)函数epoll_create() 创建一个epoll句柄(实例)参数:size :用于告诉内核这个监听的数目返回值:epoll专用的文件描述符;2.int epoll_ctl(int epfd, int op, int fd, struct epoll_event *eve原创 2017-07-31 21:50:56 · 249 阅读 · 1 评论 -
select 函数的使用方法
while(1){FD_ZERO(&set);foreach(需要监控的文件){fd>maxfd?fd:maxfd;res=select(maxfd+1,&set,0,0,0);if(FD_ISSET(listen_fd,&set)){newfd=accept(listenfd,&set);array[nsock++]=newfd;if(--res}原创 2017-08-01 09:51:28 · 2706 阅读 · 0 评论 -
Linux C 多线程编程 互斥锁
一、互斥锁互斥量从本质上说就是一把锁, 提供对共享资源的保护访问。 1. 初始化: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化: 对于静态分配的互斥量, 可以把它设置为PTHREAD_MUTEX_INITIALIZER, 或者调用pthread_mutex_init. 对于动态分配的互斥量,转载 2017-07-30 23:38:55 · 1927 阅读 · 1 评论 -
线程池实例
#ifndef _THREAD_H_#define _THREAD_H_#include #include #include #include #include typedef struct task { void *(*process) (int arg); int arg; struct task *next; }原创 2017-07-30 11:53:15 · 325 阅读 · 0 评论 -
线程概念
线程是轻量级的进程;线程与创建它的进程共享代码段,数据段。线程拥有自己独立的栈。原创 2017-07-29 21:29:52 · 153 阅读 · 0 评论 -
pthread_create()函数
(1) 函数原型:int pthread_create (pthread_t *thread_tid , const pthread_attr_t *attr , void * ( * start_routine )( void * ), void *arg );(2) 头文件:#include (3) 函数功能:创建一个新的线程(4) 参数说明:thread_tid原创 2017-07-29 21:52:28 · 1022 阅读 · 0 评论 -
ACL功能的实现
ACL:看控制访问列表(Access Control List)控制指定的用户能否通过指定的接口访问本机的服务(http、https、ftp、ssh、telnet),举个例子:没开启ACL功能前,任意用户都能在外网通过wan连接的ip或者内网通过lan口的ip访问设备的web页面,开启ACL功能,添加规则,填写范围A-B,接口选择为wan,勾选http和https,这样就只有外网IP地址在A-...原创 2018-11-05 15:40:49 · 13912 阅读 · 0 评论