自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

转载 1231

一、什么是线程?      线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。二、什么时候使用多线程?     当多个任务可以并行执行时,可以为每个任务启动一个线程。三、线程的创建 

2016-12-31 17:51:31 497

转载 1230

memcpy()函数用法函数原型void *memcpy(void*dest, const void *src, size_t n);功能由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。头文件#include返回值  函数返回一个指向dest的指针。

2016-12-30 21:07:39 157

转载 1229

我只要一听到被面试者说:"const意味着常数"(不是常数,可以是变量,只是你不能修改它),我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems  Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着"只读"就可

2016-12-29 19:50:28 200

原创 1228

死锁和预防在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。 死锁的四个必要条件在计算机专业的本科教材中,通常都会介绍死锁的四个必要条件。这四个条件缺一不可,或者说只要破坏了其中任何一个条件,死锁就不可能发生。我们来复习一下,这四个条件是:•互斥(Mutual exclusion):存在这样一种资源,它在某个时刻

2016-12-28 20:13:28 173

原创 1227

链表表头循环#include #include struct node{    int num;    struct node * next;};typedef struct node Node;typedef struct node * Link;void create_newnode(Link *new_node);void crea

2016-12-27 22:44:08 173

原创 1226

原型  char *  fgets(char * s, int n,FILE *stream);    参数:         s: 字符型指针,指向存储读入数据的缓冲区的地址。         n: 从流中读入n-1个字符         stream : 指向读取的流。   返回值:          1. 当n          2.

2016-12-26 21:02:49 133

原创 1225

const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。(1)可以定义const常量,具有不可变性。   例如:const int Max=100; Max++会产生错误;   (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。  例如: void f(const int i) { .........} 编译器就会知道i是一个常量,

2016-12-26 21:01:30 145

原创 1224

sprintf函数功能:把格式化的数据写入某个字符串缓冲区。头文件:stdio.hint sprintf( char *buffer, const char *format, [ argument] … );参数列表buffer:char型指针,指向将要写入的字符串的缓冲区。format:格式化字符串。[argum

2016-12-24 23:14:05 131

原创 1223

#include  #include  #include  #include  #include  #include  #include  #include  #define portnumber 3333void * read_msg(void *arg){    int fd = *((int *)arg);    int nread =

2016-12-23 22:47:59 443

原创 1222

server多路复用#include #include #include #include #include #include #include #include #include#include#include/* 宏定义端口号 */#define portnumber 8000#define MAX_LINE 80/*

2016-12-22 22:20:40 151

原创 1221

socket通信时协议的制定在系统开发过程中,如果涉及到了Socket通讯,那就要制定好通讯的协议,只有制定好了规则,后面的工作才方便顺利展开,制作通讯协议时要考虑到通讯的安全性,必要的信息要经过加密处理,同时也要考虑到系统的可扩展性,如果以后需要增加一个命令或者修改命令要保证这些工作能方便的进行。          协议的内容包括如下:一、     系统默认约定

2016-12-21 21:47:41 180

原创 1220

1、栈:由系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;   堆: 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。  2、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;   堆是存放在二级缓存中,生命周期由虚拟机的回收算法来决定(并不是一旦成为孤儿对象就能被回收)。

2016-12-20 23:10:50 230

原创 1219

#include #include #include #include struct menber{    int a;    char *s;};void *create(void *arg){    struct menber *temp;    temp=(struct menber *)arg;    printf("me

2016-12-19 22:23:12 166

原创 1218

线程编程#include #include #include #include char message[]="hello world!\n";void * thread_function(void * arg){    printf("thread_function is running! argument is %s\n",(char *

2016-12-18 21:29:59 123

原创 1217

#include #include #include pes.h>#include char message[]="hello world!";void * thread_function(void *arg){    printf("thread function is running, argument is %s\n",(char *)arg);    s

2016-12-17 19:06:04 219

原创 1216

#include #include #include int flag = 1;void * thread_function(void * arg);int main(){    int ret;    pthread_t tid;    void * thread_result;    int count = 1;    ret = p

2016-12-16 20:12:02 190

原创 1215

#include #include #include #include char message[]="hello world!";void * thread_function(void *arg){    printf("thread function is running, argument is %s\n",(char *)arg);    sleep(3

2016-12-15 17:50:06 144

原创 1214

进程间通信进程间通信主要包括管道, 系统IPC(Inter-Process Communication,进程间通信)(包括 消息队列, 信号,共享存储), 套接字(SOCKET).管道包括三种:1)普通管道PIPE, 通常有两种限制,一是单工,只能单向传输;二是只能在 父子或者兄弟进程间使用.2)流管道s_pipe: 去除了第一种限制,为半双工,可以双向传输.3) 命名管道

2016-12-14 18:16:18 172

原创 1213

二叉树 每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。 性质: 1、非空二叉树的第n层上至多有2^(n-1)个元素 2、深度为h的二叉树至多有2^h-1个结点。 满二叉树:所有终端都在同一层次,且非终端结点的度数为2。 在满二叉树中若其深度为h,则其所包含的结点数必为2^h-1。 完全二叉树: 除了最大的层次即成为一颗满二叉

2016-12-13 22:23:57 135

原创 1212

#include #include #include void *create(void *arg){    char *name;    name=(char *)arg;    printf("The parameter passed from main function is %s  \n",name);    return (void *)0;}

2016-12-12 17:26:45 110

原创 1211

#include #include #include #include char message[]="hello world!\n";void * thread_function(void * arg){    printf("thread_function is running! argument is %s\n",(char *)arg);    sl

2016-12-11 21:26:17 211

原创 1210

指针和数组的区别主要体现在如下几个方面:1.空间分配数组分配空间时是静态分配,你定义多大的数组就分配多大的空间,并自动分配一片连续的内存空间; 指针变量本身是分配4字节的空间,但是指针可以结合malloc,calloc,realloc等函数动态分配空间,通过指针来访问由这些函数分配的内存空间。 所以从这点上看,指针的空间利用率要高于数组。2.访问效率数组通过

2016-12-10 13:56:48 116

原创 1209

#include #include #define BUFFER_SIZE 16struct prodcons{    int buffer[BUFFER_SIZE];    pthread_mutex_t lock;    int readpos,writepos;    pthread_cond_t notempty;    pthread_

2016-12-09 18:35:54 143

原创 1208

#include #include #include #include int ticket = 10;void *sell_ticket1(void){    while(1){if(ticket > 0){sleep(1);printf("sell ticket--> chool ticket:%d\n",--ticket);

2016-12-08 13:14:30 177

原创 1207

#include #include #include #include #include #include #include #include #include#include#include/* 宏定义端口号 */#define portnumber 8000#define MAX_LINE 80/*处理函数

2016-12-07 12:27:47 130

原创 1206

#include #include #include #include pthread_mutex_t lock;//互斥锁pthread_cond_t cond_create;//创建表的条件变量pthread_cond_t cond_menu;//创建菜单的条件变量pthread_cond_t cond_insert;//插入用户的条件变量pthread

2016-12-06 12:44:46 111

原创 1205

#include #include #include //#include //#include #include pthread_mutex_t mutex;pthread_cond_t cond1;pthread_cond_t cond2;pthread_cond_t cond3;int ticket = 10;void *s

2016-12-05 20:25:20 117

原创 1204

#include #include #include pthread_mutex_t mutex;pthread_cond_t cond;int main_flog = 0;int sub_flog = 0;int main_count = 0;int sub_count = 0;void *sub_thread_func(voi

2016-12-04 21:09:12 147

原创 1203

#include #include #include struct msg_buf    {        int mtype;        char data[255];    }; int main(){        key_t key;        int msgid;        int ret;        str

2016-12-03 21:41:09 167

原创 1202

#include #include #include struct menber{    int a;    char *b;}temp={8,"zieckey"};void *create(void *arg){    printf("new thread ... \n");    return (void *)&temp;}i

2016-12-02 23:30:01 348

原创 1201

#include   #include   #include   #include "shmdata.c"  #include       int main()  {      int running = 1;      void *shm = NULL;      struct shared_use_st * shared;      int sh

2016-12-01 17:18:29 111

VR-Forces Users Guide 4.6

VR-Forces Users Guide 4.6。

2019-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除