Linux系统编程
NDJForever
这个作者很懒,什么都没留下…
展开
-
文件锁的竞争
//fcntl锁定文件#include<unistd.h>#include<stdlib.h>#include<stdio.h>#include<fcntl.h>const char *test_file = "/home/ndj/filelock/fcntl/test_lock.in";int main(){ int file_desc;//文件描述符 int byte原创 2017-05-18 21:40:26 · 208 阅读 · 0 评论 -
Linux中线程栈测试
#include<stdio.h>#include<stdlib.h>//#include<types.h>//#include<stat.h>#include<pthread.h>#include<string.h>#include<limits.h>void* thread_func(void* arg){ printf("The thread is here\n");转载 2017-09-24 15:18:39 · 295 阅读 · 0 评论 -
vim最实用的配置脚本文件
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 显示相关 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""set short原创 2017-09-09 09:35:30 · 982 阅读 · 0 评论 -
互斥量(对数据结构保护)
#include<stdio.h>#include<stdlib.h>#include<pthread.h>/* * 当一个以上的线程需要访问动态分配的内存时,可以引入计数变量 */struct foo{ int f_count; pthread_mutex_t f_lock; int f_id;};struct foo* foo_alloc(int id)/原创 2017-09-01 10:43:56 · 444 阅读 · 0 评论 -
多线程造成死锁的两种情况
* * 程序中使用一个以上的互斥量造成程序死锁 */#include<stdio.h>#include<stdlib.h>#include<pthread.h>//定义两个互斥锁并初始化pthread_mutex_t ALock = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_t BLock = PTHREAD_MUTEX_INITIALIZER;原创 2017-09-01 14:37:27 · 932 阅读 · 1 评论 -
FIFO实现并发服务器——多进程
/*服务器*/#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<unistd.h>#include<fcntl.h>#include<string.h>#include<errno.h>#define SERVER_FIFO "server_fifo"/*服务器管原创 2017-10-27 14:21:13 · 567 阅读 · 0 评论 -
进程间通信—共享内存、信号量
/************************************************************************* > File Name: test.c > Author: ma6174 > Mail: ma6174@163.com > Created Time: Fri 20 Oct 2017 01:49:05 PM CST原创 2017-10-20 18:35:25 · 245 阅读 · 0 评论 -
Posix消息队列异步通知功能
/************************************************************************* > File Name: test.c > Author: ndj > Mail: ndj_ydd@163.com > Created Time: Tue 07 Nov 2017 03:39:34 PM CST **原创 2017-11-08 14:24:06 · 452 阅读 · 0 评论 -
System V消息队列实现服务器
每个应用一个队列/*服务器程序*/#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<unistd.h>#include<sys/msg.h>#include<fcntl.h>#include<limits.h>#include<errno.h>#include<原创 2017-11-10 15:11:11 · 330 阅读 · 0 评论 -
多线程-读写锁
/************************************************************************* > File Name: test.c > Author: ndj > Mail: 172305913@qq.com > Created Time: 2017年08月22日 星期二 10时34分52秒 ********原创 2017-08-22 17:22:03 · 203 阅读 · 0 评论 -
Linux中环境变量的作用
/************************************************************************* > File Name: test.c > Author: ndj > Mail: 172305913@qq.com > Created Time: 2017年07月22日 星期六 18时42分58秒 *******转载 2017-07-23 13:55:19 · 404 阅读 · 0 评论 -
select实现并发服务器
//使用select将多进程的程序改成但进程的程序#include<stdio.h>#include<stdlib.h>#include<sys/socket.h>#include<sys/time.h>#include<sys/unistd.h>#include<sys/types.h>#include<netinet/in.h>#include<strings.h>#inclu原创 2017-06-15 20:16:02 · 644 阅读 · 0 评论 -
dbm数据库操作
//dbm数据库的使用#include<unistd.h>#include<stdlib.h>#include<stdio.h>#include<fcntl.h>#include<gdbm-ndbm.h>//包含dbm数据库操作函数//#include<ndbm.h>#include<string.h>//宏定义#define TEST_DB_FILE "/home/ndj/dbm原创 2017-05-22 19:38:15 · 1386 阅读 · 0 评论 -
poll函数
//TCP回射服务器poll实现#include<stdio.h>//#include<stdlib.h>#include<sys/types.h>//#include<sys/stat.h>#include<sys/socket.h>#include<poll.h>#include<netinet/in.h>#include<unistd.h>#include<strings.h原创 2017-06-18 19:50:27 · 189 阅读 · 0 评论 -
socket并发服务器(frok)
//服务器#include<stdio.h>#include<stdlib.h>#include<netinet/in.h>//套接字地址结构#include<sys/socket.h>//socket函数#include<strings.h>//字节操纵函数 bzero#include<string.h>#include<unistd.h>void str_echo(int soc原创 2017-06-07 10:59:00 · 331 阅读 · 0 评论 -
socket网络编程避免僵尸进程
//服务器程序//(1)当fork字进程时,必须捕获SIGCHLD信号//(2)当捕获信号时,必须处理被中断的系统调用(accept)//(3)SIGCHLD的信号处理函数必须被正确的书写,应使用waitpid函数,以免留下僵尸进程#include<stdio.h>#include<stdlib.h>#include<strings.h>#include<string.h>#incl原创 2017-06-08 17:09:10 · 530 阅读 · 0 评论 -
UDP套接字编程
//使用UDP实现UDP回射服务器#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<strings.h>#include<string.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#define MAXLINE 4096原创 2017-06-25 15:24:37 · 225 阅读 · 0 评论 -
select函数
//服务器程序//(1)当fork字进程时,必须捕获SIGCHLD信号//(2)当捕获信号时,必须处理被中断的系统调用(accept)//(3)SIGCHLD的信号处理函数必须被正确的书写,应使用waitpid函数,以免留下僵尸进程#include<stdio.h>#include<stdlib.h>#include<strings.h>#include<string.h>#incl原创 2017-06-13 21:15:47 · 205 阅读 · 0 评论 -
时间服务器客户端
//时间服务器includeincludeincludeincludeincludeincludeincludeincludeincludeincludedefine LISENQ 1024define MAXLINE 4096/服务器处理函数,返回当地时间/void str_cli(int sockfd) { //time_t cur_time;//当前时间结构体 //str原创 2017-06-28 09:18:06 · 297 阅读 · 0 评论 -
Posix有名信号量、基于内存的信号量
/************************************************************************* > File Name: main.c > Author: ndj > Mail: ndj_ydd@163.com > Created Time: Thu 23 Nov 2017 02:12:15 PM CST **原创 2017-11-23 20:30:05 · 330 阅读 · 0 评论