ÇëÎÊlinuxÏÂÏ̺߳ÍÒ»¸ö¶¨Ê±Æ÷Ö®¼äͬ²½µÄÎÊÌ⣡
#include <stdio.h>
#include <pthread.h>
#include <sys/time.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>
//#define BUFFER_SIZE 16
#define BUFFER_SIZE 2
#define OVER ( - 1)
struct prodcons
{
int buffer[BUFFER_SIZE];
pthread_mutex_t lock;
int readpos, writepos;
pthread_cond_t notempty;
pthread_cond_t notfull;
};
struct prodcons buffer;
void init(struct prodcons *b)
{
pthread_mutex_init(&b->lock, NULL);
pthread_cond_init(&b->notempty, NULL);
pthread_cond_init(&b->notfull, NULL);
b->readpos = 0;
b->writepos = 0;
}
void put(struct prodcons *b, int data)
{
pthread_mutex_lock(&b->lock);
if ((b->writepos + 1) % BUFFER_SIZE == b->readpos)
{
pthread_cond_wait(&b->notfull, &b->lock);
}
b->buffer[b->writepos] = data;
b->writepos++;
if (b->writepos >= BUFFER_SIZE)
b->writepos =
Ïà¹ØÎÊ´ð£º
дÁ˸ö²âÊÔ³ÌÐòÈçÏÂ
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
Á½¸öÎļþ1.PC£¬1.inc
1.PCÓвÙ×÷oracleÊý¾Ý¿âµÄ ,1.incÒ²ÓвÙ×÷oracleÊý¾Ý¿â
ÔÚÆäËûÊý¾ÝÖÐÈçinformix ÖÐ$include 1.inc¾Í¿ÉÒÔʹÓÃÁË
ÔÚORACLEÊý¾Ý¿âÖØ $include 1.inc²»¿ÉÓà EXEC SQL include 1.incÒ²²»¿É ......
linux ÏÂC±à³Ì ¼¯³É¿ª·¢»·¾³ ÓÃʲô±È½ÏºÃ
ÎÒ³õ²½Ñ¡¶¨ codeblock
ºÇºÇ »¹ÓÐ ÔÚlinux дÁËÒ»¸ö´òÓ¡ÖÐÎĵĴúÂ룬¶ø½ñÌìÔÚwindows ϲ鿴ÄǸö´úÂë £¬ ÊÇÂÒÂë ¶øºóÏëµ½ÏÈÓà EditPlusÏȽøÐб༠Ȼºó¸´ÖÆ ......
´úÂëÌ«¶à£¬²»ºÃÌù£¬
´óÖÂÉæ¼°µ½ÕâЩ£º
char *arg[MAXSIZE];
char *buffer[MAXSIZE];
.........
arg[k]=(char*)malloc(sizeof(char)*j);
strcpy(arg[k],buffer);
.................[color=#993300][/color]
µ ......
ÈçÌâ¡£ÇëÖ¸½Ì£¬¶àл£¡
http://www.chinaunix.net/jh/50/1394871.html
ËäÈ»Äã¸øµÄÍøÖ·²»Äܽâ¾öÎÒµÄÎÊÌ⣬»¹ÊÇҪллÄ㣡
ÎÒ²ÉÓÃIPSec¹¤¾ßÊÇstrongSwan¡£
ËäÈ»Äã¸øµÄÍøÖ·²»Äܽâ¾öÎÒµÄÎÊÌ⣬»¹ÊÇҪллÄ㣡&nbs ......