- 博客(16)
- 资源 (40)
- 收藏
- 关注
原创 TCP并发服务器
/***************************************** TCP并发服务器模型 同时处理多种客户端请求******************************************/#include #include #include #include #include #include #inclu
2013-07-19 11:07:31 566
原创 网络编程基础(服务器,客户端)
服务器端编程步骤:1、创建套接字socket, 初始化网络结构struct sockaddr_in2、bind绑定 (服务器必须执行此函数,客户端可选)3、listen 设置监听数5、accept接受连接请求客户端编程步骤:1、创建套接字socket, 初始化网络结构2、connect向服务器发送连接请求/********************
2013-07-16 15:50:33 839
原创 消息队列的简单实现(客户端A,客户端B)
下面是两个相互通信进程的简单实现,一个代表客户端A,一个代表客户端B/*************************************** 客户端A 发送TYPEB类型的数据到客户端B 读取发送到客户端A的TYPEA类型的数据***************************************/#includ
2013-07-15 21:00:48 1771
原创 共享内存
/******************************************************************************************* 该程序编译好后,需要运行两次(都保持不退出),第一次运行相当于进程1,第二次运行按进程2, 进程1向共享内存写数据,进程2从共享内存读数据。输入quit则进程全部退出,并删除共享内存****
2013-07-12 20:05:10 581
原创 进程间用信号通信(司机和售票员问题)
/**************************************************************************************************司机售票员问题创建子进程代表售票员,父进程代表司机,同步过程如下:1、售票员捕捉SIGINT(代表开车),发 SIGUSR1 给司机,司机打印"let's go"2、售票员捕捉SIGQU
2013-07-11 16:54:11 6358
原创 线程互斥(加锁实现)
#include #include #include #include #include #define _LOCK_ //定义锁int value1, value2;pthread_mutex_t mutex;void * f(void *arg){ while (1) {#ifdef _LOCK_ p
2013-07-11 14:03:15 705
原创 创建有名管道
有名管道创建后,可以在任意两个进程间进行通讯下面写了两个程序,一个往管道里写数据,一个从管道里读数据,他们的代码只有个别不一样,大部分都相同。/**********该程序向管道里写数据********/#include #include #include #include #include #include #include #include #
2013-07-11 11:52:33 1690
原创 创建无名管道
/* 无名管道只能在具有亲缘关系的进程间进行通信*/#include #include #include #include #include #define N 64int main(){ pid_t pid; int pfd[2]; ssize_t n=0; char buf[N] = {0}; if
2013-07-11 11:32:18 1371
原创 线程同步(P\V操作)
#include #include #include #include #include #include #define N 64char buf[N];sem_t get, put;void * thread_routine(void *arg){ while (1) { sem_wait(&get);
2013-07-10 20:17:14 1072
原创 创建守护进程
/* 创建守护进程: * 1、fork创建子进程 2、setsid()为子进程创建新会话 * 3、chdir("/")改变工作目录为根目录 * 4、umask(0)改变掩码 5、关闭所有打开的文件 * 6、while(1);保证程序一直在运行 * * 运行时要加sudo命令*/#include #include #includ
2013-07-10 12:09:24 501
原创 用C实现linux下的ls功能(针对单一文件)
#include #include #include #include #include #include #include //getpwuid()函数的头文件#include //getgrgid()函数的头文件int main(int argc, char *argv[]){ struct stat buf; int i;
2013-07-05 20:59:56 632
原创 log日志文件的简单实现
/***************************************************************************** 程序实现功能: 读写一个文件,每隔1秒向文件中写入一行数据,类似以下格式 1, 2001-5-23 12:32:45 2, 2001-5-23 12:32
2013-07-05 20:36:51 794
原创 快速查询
int q_search(int a[ ], int val, int low, int high) //val为要查找的数字,low为数组的最小下标,high为最大下标{ int num, mid; if (low >= high-1) return -1; mid = (low + high) / 2; if (a[
2013-07-03 17:58:02 562
原创 快速排序
#include void qsort(int a[], int low, int high); //low为数组a的最小下标,high为最大下标int get_pos(int a[], int low, int high);int main(){ int i; int a[40]; for (i=0; i a[i] = i
2013-07-03 13:45:15 440
原创 图的创建
/************头文件****************#ifndef __GRAPH_H__#define __GRAPH_H__#define MAXN 5 //最大顶点数typedef char vtype; //设顶点为字符类型typedef int adjtype; //设邻接矩阵A中元素adj为整型typedef struct graph{
2013-07-03 13:21:37 598
原创 二叉树的创建和遍历
//创建二叉树bitree *create_bitree(int i, int n) //i=1, n为节点的个数{ if (i == 0) return ; bitree *root = (bitree*)malloc(sizeof(bitree)); root->data = i; if (2*i {
2013-07-02 14:31:14 541
source Insight
2013-08-03
linux内核设计与实现第三版(陈莉君译 经典)
2013-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人