C语言
文章平均质量分 64
android_hasen
这个作者很懒,什么都没留下…
展开
-
C语言多线程-读写公共数据缓冲区
#include #include #include #include #include #include char buffer[128];int has_data=0;void read_buf(void){ sleep(1); if(has_data==1) { printf("the data is:\n"); printf("%s\n",buffer);原创 2013-08-03 20:55:55 · 3150 阅读 · 0 评论 -
C语言消息队列--基本操作
#include #include #include #include #include #include #define BUF_SIZE 128struct mymsg{ long mtype; char mtext[BUF_SIZE];};void send_msg(int msgid,struct mymsg msgbuf);void receive_msg(原创 2013-08-05 19:12:44 · 5021 阅读 · 0 评论 -
C语言消息队列-消息类型不同的发送和接收
#include #include #include #include #include #include #include #define BUF_SIZE 128typedef struct mymsg{ long mtype; char mtext[BUF_SIZE];}MSG;void menu();void send_msg(int msgid,MSG *原创 2013-08-05 19:45:00 · 2778 阅读 · 0 评论 -
C语言socket编程简单步骤
服务器端/***************************************函数功能:创建套接字的函数*输入参数:无*输出参数:无*返回值:套接字的ID*/int creat_socket(){ int ret; ret=socket(AF_INET,SOCK_STREAM,0); if(ret==-1) { perror("socket error");原创 2013-08-05 20:36:55 · 2050 阅读 · 0 评论 -
C语言中的排序
#include void maopao(int a[],int n);//冒泡法排序void xuanze(int a[]);//选择法排序void kuaisu(int a[],int i,int j);//快速法排序void charu(int a[],int n);//插入法排序void erfen(int a[],int len,int n);//二分法插入一个数据int原创 2013-08-05 20:55:45 · 880 阅读 · 0 评论 -
C语言二叉树的基本操作
#include #include #define STACK_MAX_SIZE 30#define QUEUE_MAX_SIZE 30#ifndef elemType typedef char elemType;#endif/************************************************************************//*转载 2013-08-05 21:13:13 · 1700 阅读 · 0 评论 -
C语言链表(带头节点的链表)的文件读写与销毁
链表的写入文件/*====================存储彩票信息========================*//*功能:将彩票的全部数据写入文件*参数:彩票数据链表*返回值:布尔类型,读出成功返回TRUE,否则返回FALSE*/boolean writeLotteryInfo(LOTTERY *head){ FILE *fp;LOTTERY *current; bo原创 2013-08-05 21:32:28 · 1850 阅读 · 0 评论 -
Android: NDK编程入门笔记
为何要用到NDK?概括来说主要分为以下几种情况:1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。下面就介绍下Android NDK的入门学习过程:入门的最好办法就是学转载 2013-08-06 11:38:05 · 640 阅读 · 0 评论 -
子网掩码换算和子网的划分详解
一、子网掩码的换算: 在一个网络里面的子网掩码换算,就以网络中有多少台主机数为例来计算。比如说一B类IP地址为172.16.0.0的网络划分成若干子网,要求每个子网内有主机数为500台,则该子网掩码的计算方法基本步骤如下: 第一步,首先将子网中要求容纳的主机数“500”转换成二进制,得到100000100。 第二步,计算出该二进制的位数为10位,即n =10。 第三步,将2转载 2013-08-15 21:10:11 · 3101 阅读 · 0 评论 -
JNI开发环境搭建及第一个JNI小例子
本人用的是GNUStep + NDK +Eclipse开发JNI。GNUStep是模拟Linux的开发环境。废话不多说,直接上步骤:1、下载GNUStep 并安装 下载地址http://www.gnustep.org/experience/Windows.html。 进入下载界面可以看到如下的界面原创 2014-01-03 17:14:55 · 1252 阅读 · 0 评论 -
Windows下搭建Eclipse开发C++的环境
1、在eclipse中安装CDT。 如果你下载的eclipse是adt版本,在【Help】-->【About ADT】中包含CDT,如下图,则跳过这个步骤。 CDT安装方法主要有两种,在线安装与离线安装方法; 第一种(在线安装方法): Windows --> install new software 官网给出了p2网址http://download.ec原创 2014-05-09 11:25:18 · 696 阅读 · 0 评论 -
linux下如何模拟按键输入和模拟鼠标
查看/dev/input/eventX是什么类型的事件, cat /proc/bus/input/devices设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键,比如KEY_0,KEY-Z等,所以需要用到按键模拟,具体 方法就是操作/dev/input/event1文件,向它写入个input_event结构体就可以模拟按键的输入了。li转载 2014-06-23 17:00:15 · 2908 阅读 · 0 评论 -
Hasen的linux设备驱动开发学习之旅--异步通知
/** * Author:hasen * 参考 :《linux设备驱动开发详解》 * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:异步通知 * Date:2014-11-05 */原创 2014-11-10 18:46:50 · 1212 阅读 · 0 评论 -
Hasen的linux设备驱动开发学习之旅--中断
/** * Author:hasen * 参考 :《linux设备驱动开发详解》 * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:中断与时钟 * Date:2014-11-11 */原创 2014-11-13 17:20:38 · 1515 阅读 · 0 评论 -
Hasen的linux设备驱动开发学习之旅--时钟
/** * Author:hasen * 参考 :《linux设备驱动开发详解》 * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:时钟 * Date:2014-11-13 */原创 2014-11-15 10:13:19 · 1287 阅读 · 0 评论 -
C语言信号量实现红绿灯
#include #include #include #include #include #include #include int sem_id; int deng[4]={0}; void creat_sem(); int get_key(); void init_sem(); void request_sem(int nsem_id); voi原创 2013-08-05 19:09:52 · 4661 阅读 · 1 评论 -
C语言信号量实现两线程循环打印
#include #include #include #include #include #include sem_t sem1,sem2;int number[10]={1,2,3,4,5,6,7,8,9,10}; int i=0;void thread1(void){ do { sem_wait(&sem1);//等待sem1信号量 printf("threa原创 2013-08-03 21:19:38 · 1879 阅读 · 0 评论 -
C语言互斥锁-条件变量实现公共缓存区数据读写
#include #include #include #include #include #include #include #include char buffer[128]; int has_data=0;pthread_mutex_t mutex;pthread_cond_t cond;pthread_cond_t cond2;void read_buf(voi原创 2013-08-03 21:36:13 · 4362 阅读 · 0 评论 -
C语言生产者与消费者-不同速率实现
#include #include #include #include #include int num[5]={0};sem_t sem1,sem2;int position_producer=0;int position_customer=0;void print(){ int i; for(i=0;i<5;i++) { printf("%d\t",num[i原创 2013-08-03 21:45:25 · 1149 阅读 · 0 评论 -
C语言循环输入字符串#结束写入文件
#include #include #include #include #include #define BUF_SIZE 128void my_read(int fd){ int size; char buffer[BUF_SIZE]; do { memset(buffer,'\0',BUF_SIZE); size=read(fd,buffer,BUF_SIZE原创 2013-08-03 21:00:50 · 3439 阅读 · 0 评论 -
C语言互斥锁-双条件变量实现循环打印
#include #include #include #include #include #include int number[10]={1,2,3,4,5,6,7,8,9,10}; pthread_mutex_t mutex;pthread_cond_t cond;pthread_cond_t cond2;int i=0; //数组下标void read_even(v原创 2013-08-03 21:33:02 · 1802 阅读 · 1 评论 -
C语言有名管道fifo的创建及运用
三个文件(fifo.c,write.c,read.c)fifo.c用来创建有名管道fifo(最先编译)write.c用来向管道写入数据read.c用来从管道读出数据==================================================//文件1:fifo.c#include #include #include #include #i原创 2013-08-03 20:03:56 · 3368 阅读 · 1 评论 -
C语言父子进程--子进程的创建与带参返回值捕捉
#include #include #include #include #include #include #include int main(int argc ,char **argv){ pid_t pid; pid_t pid_c; int *status; pid=fork();//创建子进程 if(pid==0) { printf("child proce原创 2013-08-03 20:43:28 · 2452 阅读 · 0 评论 -
C语言父子进程--waitpid的用法
#include #include #include #include #include #include #include int main(int argc ,char **argv){ pid_t pid; pid_t pid_c; int status; pid=fork(); if(pid==0) { printf("child process will原创 2013-08-03 20:46:25 · 1998 阅读 · 0 评论 -
C语言信号-捕捉子进程退出的信号
#include #include #include #include #include int ret;void handle(int signo){ if(signo==SIGCHLD) { wait(&ret); if(WIFEXITED(ret)) { printf("SIGCHLD--->%d\n",WEXITSTATUS(ret)); }原创 2013-08-03 21:16:27 · 3469 阅读 · 0 评论 -
C语言生产者与消费者-随机数实现
#include #include #include #include #include int num=0;sem_t sem1,sem2;void thread1(void){ int n,i; while(1) { sem_wait(&sem1); while(num>=0 && num<=5) { if(num>=5) { pri原创 2013-08-03 21:43:25 · 1258 阅读 · 1 评论 -
open,read,write的基本用法
#include #include #include #define BUF_SIZE 128void my_read(int fd){ int size; char buffer[BUF_SIZE]; memset(buffer,'\0',BUF_SIZE); //printf("文件中的数据是\t"); size=read(fd,buffer,BUF_SIZE); pri原创 2013-08-03 19:10:35 · 1572 阅读 · 0 评论 -
C语言用结构体求所给日期是一年第几天
#include #include #include typedef struct date{ int year; int month; int day;}DATE;int days[12]={0};int main(){ DATE date; int valid=0;int which_day; do { printf("请输入某天日期值(年,月,日),输入(0,原创 2013-08-03 19:13:25 · 1906 阅读 · 0 评论 -
C语言无名管道实现父子进程间通信
*/#include #include #include #include #include #include #define SIZE 128 //缓存区大小 char buffer[SIZE]; //缓存区int *fd; //文件描述符数组int len; //写入字符串的长度int main(){ fd=(int *)mallo原创 2013-08-03 19:57:21 · 4485 阅读 · 0 评论 -
C语言父子进程shell命令重定向到管道传递(双管道)
/***在管道一端循环写入shell命令,并将数据重定向*到管道中,在另一端接收管道中数据*/#include #include #include #include #include #include #include #include #define SIZE 128 //缓存区大小 void read_from_pipe(int fd[],int err_fd原创 2013-08-03 20:11:35 · 1958 阅读 · 1 评论 -
C语言popen创建管道文件循环执行shell命令
/**#include FILE *popen(const char *command, const char *type); int pclose(FILE *stream);*/#include #include #include #define SIZE 128int main(){ FILE *fp; char buffer[SIZE];原创 2013-08-03 20:26:19 · 3583 阅读 · 0 评论 -
C语言多线程-基本操作
#include #include #include #include #include //编译时要链接pthread库(gcc xx.c -lpthread -o xx)void thread(void){ printf("hello\n"); pthread_exit(NULL);//线程退出}void thread2(int *a){ int b=100; pr原创 2013-08-03 20:52:26 · 1712 阅读 · 0 评论 -
C语言信号量的基本操作
/**对信号量的操作*1.初始化*2.申请*3.释放*4.销毁*//*=============================相关函数=========================== key_t ftok(const char *pathname, int proj_id); int semget(key_t key, int nsems, int semflg);原创 2013-08-03 21:04:55 · 10608 阅读 · 0 评论 -
C语言信号实现时钟
#include #include #include #include void handle(int signo){ if(signo==SIGALRM) { static second; static minutes; second++; if(second==60) { minutes++; second=0; } printf("\r原创 2013-08-03 21:11:02 · 1680 阅读 · 0 评论 -
Hasen的linux设备驱动开发学习之旅--支持阻塞的设备驱动
/** * Author:hasen * 参考 :《linux设备驱动开发详解》 * 简介:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:支持阻塞的设备驱动 * Date:2014-11-05 *//** * 现在实现这样一个设备,globalfifo,只有当FIFO中有数据的时候(即有进程把数据写入了FIFO * 而且没有被读进程原创 2014-11-05 17:23:44 · 896 阅读 · 0 评论