- 博客(52)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 图片浏览器
/* widget.h*/#ifndef WIDGET_H#define WIDGET_H#include #include #include #include class Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = 0); ~Widget();public
2017-09-12 08:25:36
294
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 汇编语言实现冒泡算法
buf: .word 7,8,6,1,2,4,3,5,9buf_end: .word.global _start _start: ldr r0, =buf add r1, r0, #32loop: ldr r2, [r0] add r0, #4 ldr r3, [r0] cmp r2, r3 strlt r2,
2017-09-12 08:20:15
1511
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 汇编语言实现倒序输出
global _start/* int *p === > buf; p === 首元素的地址; buf q === 最后一个元素的地址;buf+8*4 while(p < q) { a = *p b = *q; *p = b; *q = a; p++; q--; } */_start: ldr r0, =buf; @ 将数组的首元素
2017-09-12 08:17:32
5435
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 创建共享内存
共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Linux下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际
2017-09-10 17:18:42
582
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 线程thread的使用
#include#include#include#include#include#includepthread_t thread;sem_t sem_r, sem_w;int a[10] = {4,5,41,23,36,8,7,14,36,12};static int len = sizeof(a);static int i = 0;static int j = 9;
2017-09-10 10:07:58
206
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 fock创建进程
#include#include#includeint main(){ pid_t pid; if (0 > (pid = fork())) { perror("fork"); return -1; } else if (0 == pid) { printf("child: %d %d \n
2017-09-10 10:04:34
2836
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 文件I/O实现拷贝功能
#include#include#include#include#includeint main(int argc,char *argv[]){ if (argc < 3) { fprintf(stderr, "Usage: %s \n",argv[0]); return -1; } int fin; if (
2017-09-10 10:01:40
872
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 无名管道
无名管道 anonymous pipe无名管道:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。#include#i
2017-09-10 09:38:06
231
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 strlen函数的实现
原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型为size_t strlen(const char *string);,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t;头文件:string.h格式:strlen (字符数组
2017-09-08 19:33:52
218
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 strcmp函数的实现
原型strcmp(const char *s1,const char * s2);用法:#include 功能:比较字符串s1和s2。一般形式:strcmp(字符串1,字符串2)说明:当s1当s1=s2时,返回值=0当s1>s2时,返回值>0即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的
2017-09-08 18:54:55
567
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 十进制转二进制、十进制转十六进制
今天对十进制转二进制、十进制转十六进制,的讲解,日常生活中,我们用得最多的是十进制,但是在C语言中我们都是使用二进制和十六进制。二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
2017-09-07 18:35:51
491
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 atoi函数的讲解
学习C语言的时候,用来练习用的,现在分享给大家,希望大家能够喜欢。希望能和大家共同学习C语言及c++,有不足的地方,请大家多多指点。今天对atoi函数的讲解atoi(表示ascil to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中,atoi()函数会扫描参数nptr字符串,跳过前面的空白字符,直到遇到数字和正负号才开始做转换,而在遇到非数
2017-09-07 08:18:34
679
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C语言实现简单的注册、登录、退出
刚开始学习C语言的时候,用来练习用的,现在分享给大家,希望大家能够喜欢。希望能和大家共同学习C语言及c++,有不足的地方,请多多指点。利用if——else语句实现简单的注册、登录、退出。#includeint main(){char a,b,c,d;while(1){int num;printf("**********************************
2017-09-07 08:14:45
27147
4
原创 水温控制器
#include<reg51.h> #define uchar unsigned char#define uint unsigned int sbit DQ=P3^7;sbit RS=P3^2;sbit RW=P3^1;sbit EN=P3^0;sbit PT = P3^5;sbit yellow=P1^7;sbit green=P1^6;sbi...
2019-04-17 21:09:17
1213
原创 多线程的实现
#include #include #include #include #include #include #include #include #include #include #include void * client(void *arg) //connfd;{ int connfd; int ret; char buf[256]; connfd = *(
2017-09-17 16:21:56
244
原创 多进程的实现
#include #include #include #include #include #include #include #include #include int client(int connfd) //connfd;{ int ret; char buf[256]; while(1) { memset(buf, 0, sizeof(buf));
2017-09-17 16:20:15
526
原创 svrver服务器编写
#include #include #include #include #include /* See NOTES */#include #include #include int main(){ int ret; int listenfd; int connfd; char buf[256]; struct sockaddr_in srvadd
2017-09-17 16:17:39
650
原创 poll机制
#include #include #include #include #include #include #include #include #include int client(int connfd){ int ret; char buf[256]; memset(buf, 0, sizeof(buf)); ret = read(connfd, buf, si
2017-09-17 16:13:20
244
原创 epoll机制
#include #include #include #include #include #include #include #include #include #include int client(int connfd){ int ret; char buf[256]; memset(buf, 0, sizeof(buf)); ret = read(connfd
2017-09-17 16:11:34
216
原创 select机制
#include #include #include #include #include #include #include #include #include int client(int connfd){ int ret; char buf[256]; memset(buf, 0, sizeof(buf)); ret = read(connfd, buf, si
2017-09-17 16:08:37
453
原创 fgets实现行号的统计
#include#include#include#include#includeint main(int argc, char *argv[]){ if (2 > argc) { fprintf(stderr, "usage: %s filename\n",argv[0]); return -1; } FILE *fd
2017-09-17 10:40:29
365
原创 "ls"功能的实现
#include#include#include#include#include#include#include#include#includeint main(){ DIR *dirp = opendir("."); /*打开目录*/ struct dirent *file; /*目录中的结构体指针*/ struct stat
2017-09-17 10:38:41
263
原创 互斥锁(加锁和解锁操作)
#include#include#include#include#include#include/* 互斥锁 */unsigned int value1, value2, count;pthread_mutex_t mutex;void *fun(void *arg);int main(){ pthread_t thread; if (0 > pthread_
2017-09-17 10:36:02
3192
原创 P-V操作(信号量的操作)
#include#include#include#include#include#include#includechar buf[60];sem_t sem;void *thread_fun(void *arg){ while(1) { sem_wait(&sem); printf("you enter %d characte
2017-09-17 10:32:31
2671
原创 创建守护进程
#include#include#include#include#include#include#include#include/* 守护进程 */void init_daemon(){ /*创建子进程,父进程退出*/ pid_t pid; if (0 > (pid = fork())) { perror("fork");
2017-09-17 10:28:44
213
原创 线程间机制(同步和互斥)
线程间机制{ 多线程共享同一个进程子地址空间 优点: 线程间很容易进行通信 1、 通过全局变量实现数据共享和交换 缺点: 多个线程同时访问共享对象时需要引入同步和互斥机制}线程的同步和互斥{ 同步 { 同步:指的是多任务(线程)按照约定的顺序相互配合完成一件事情 同步机制基于信号量提出,信号量来决定线程是继续运行还是阻塞等待 P---V操作 信号量是一种受保护
2017-09-17 10:26:26
770
原创 多线程编程
多线程编程/* 注意: 在编译pthread时, 需要加链接库: -lpthread*/{ #include /* 创建线程 */ int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*routine)(void *),void *arg); thread : 创建线程 attr:
2017-09-17 10:24:54
172
原创 文件IO和标准IO的比较
IO总结IO{ 标准IO, 文件IO 标准IO{ 1、是一种缓冲IO 2、操作的对象的文件流 FILE * 3、打开 fopen(); 4、关闭 fclose(); 5、读操作 fgetc(); gets(); fgets(); fread(); 6、写操作 fputc(); puts(); fputs(); fwrite(); 7、定位 fseek(
2017-09-17 10:21:04
617
原创 fgetc和fputc实现文件拷贝
#include/* fgetc读取一次读取一个字符 *//* int fgetc(FILE *stream); */int main(int argc,char *argv[]){ if (argc < 3) { fprintf(stderr, "usage:%s filename1, filename2\n", argv[0]); r
2017-09-15 20:11:07
765
原创 getc和putc实现文件拷贝
#include/* getc一次读取一个字符 */int main(int argc, char *argv[]){ if (argc < 3) { fprintf(stderr, "usage: %s filename1 filename2\n",argv[0]); return -1; } FILE *fd1 =
2017-09-15 20:09:20
431
原创 getchar和putchar的使用方法
#include/* fgetc,getc getchar 实现的功能都一样*//* 注意它们返回的都是int类型 */int main(int argc, char *argv[]){ int ret; ret = getchar(); /* stdin标准输入 */ if (EOF == putchar(ret)) /* 出错返回eof */
2017-09-15 08:26:08
3699
水温控制系统设计
2019-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人