自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux网络编程之UDP协议(一版)

最近正在学习网络编程,用UDP来实现服务器端和客户端的收发的简单通信。由于是第一版,所以写的比较粗糙,很多地方都有要改进的地方。例如:包裹函数,把客户端和服务器端共同都包括的头文件,宏都写在一个公共头文件里等等。以后有时间会继续改进。首先编写服务器端的程序ser_udp.c#include<stdio.h>#include<unistd.h>#include&...

2019-03-31 19:08:29 375

原创 Linux网络编程之TCP协议(一版)

ser.c:#include<stdio.h>#include<unistd.h>#include<sys/socket.h>#include<stdlib.h>#include<netinet/in.h>#include<string.h>int main(){ int sockSer = s...

2019-03-30 17:42:19 158

原创 数据结构之线性表的单链表实现带头结点实现和不带头结点实现

带头结点实现:#include<iostream>#include<stdlib.h>using namespace std;template<typename T>struct LinkNode{ T data; LinkNode<T> *link; LinkNode(LinkNode<T> *...

2019-03-26 23:15:36 474

原创 Linux下使用互斥量和条件量实现读写锁(优先分配写锁)

目前只实现了加读锁的功能,后续会逐步完善。定义自己的头文件pthread_rwlock.h#ifndef _PTHREAD_RWLOCK_H#define _PTHREAD_RWLOCK_Htypedef struct{ pthread_mutex_t rw_mutex; pthread_cond_t rw_condreaders; pthread_cond...

2019-03-25 20:50:53 226

原创 Linux多线程编程之读写锁

读写锁也是线程同步中的一种同步机制,简单的来说:读写锁既有读的方面也有写的方面,其中读是共享锁,而写是独占锁,而且系统中读写锁的分配是写锁优先的。下面的用例,证明了读锁是共享锁。#include<stdio.h>#include<unistd.h>#include<pthread.h>pthread_rwlock_t rwlock = PTHRE...

2019-03-25 13:09:01 686

原创 Linux下的多线程编程

如何一次创建多个线程:#include<stdio.h>#include<unistd.h>#include<malloc.h>#include<pthread.h>#define MAX_THREAD_NUM 10void* thread_fun(void*arg){ int i = *(int*)arg; pr...

2019-03-23 20:59:19 384

原创 matlab入门级操作

本科的学习中接触过matlab。虽然当时大家都说有多么简单,方便,好用,但是年少无知的我并没有感受到矩阵实验室的魅力。作为一名通信狗由于学习的需要有机会再次接触matlab,本次接触深深地为矩阵实验室的强大运算能力所折服。优点的的话自不用说,获取简单(华夏大地随处可见的破解版),也还算简单易学;缺点的话就是运算效率有点低下,稍微大一点的程序,能跑个几天几夜,一旦断个电,就玩完了。下面就贴一...

2019-03-22 09:36:19 202

原创 C++的继承实现之公有继承

公有继承class Base{ //...base class members };class Derived : access-specifier Base{ //..derived class members};其中的access-specifier 可以是public,private,或是protected.与public和private一样,prote...

2019-03-22 09:23:22 916

原创 数据结构之线性结构的顺序表和递归的简单说明

用递归来实现:输入一个数字N,把1到N打印输出。#include<stdio.h>void Print(int n);int main(){ int n; scanf("%d",&n); Print(n);}Print(int n){ if(n) { Print(n-1); printf...

2019-03-20 16:50:59 456

原创 Linux进程通信之shared memory(共享内存)

先写一个ser_shm.c:#include"myutili.h"int main(){ int shm_key = Ftok("myshm",0xff); int shm_id = shmget(shm_key, 1024*1024, IPC_CREAT|IPC_EXCL|0755); if(shm_id == -1) { perror...

2019-03-20 11:06:59 526

原创 Linux进程通信之FIFO(有名管道)

首先编写utili.h#ifndef _UTILI_H#define _UTILI_H#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<fcntl.h>#define BUFFER_MAX_SIZE 256...

2019-03-18 20:56:57 180

原创 Linux进程通信之semaphore(信号量)

首先,写一个通用的头文件myutili.h:#ifndef _MYUTILI_H#define _MYUTILI_H#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>#include<sys/ipc.h>#include<...

2019-03-18 17:00:46 334

原创 C语言中的结构体

struct point { int x; int y;};上面是C语言中结构体的定义,其中关键字struct引入结构声明。结构声明由包含在花括号内的一系列声明组成。关键字struct后面的名字是可选的,称为结构标记(这里指的是point).结构标记用于为结构命名,在定义之后,结构标记就代表花括号内的声明,它可以作为该声明的简写形式。struct { ... } x,...

2019-03-18 16:10:11 214

原创 进程通信之包裹函数

#include<iostream>using namespace stdFILE * Fopen(const char *path,const char *mode){ FILE *fp = fopen(path, mode); if(NULL == fp) { perror("fopen."); exit(1); ...

2019-03-17 09:19:06 172

原创 Linux中的进程通信之pipe

Linux中的进程通信方式有很多种,首先来介绍一下管道。管道的特点是只能用在有“亲缘”关系的父子进程之间。管道的创建:#include<stdio.h>#include<stdlib.h>int fd[2];int ret = pipe(fd);if(ret == -1){ perror("pipe."); return -1; ...

2019-03-13 17:12:05 530

原创 Linux中的进程

linux中进程的相关函数:fork(),vfork(),getpid(),getppid(),wait(). 1.常用的函数:这些函数是进程中用到的最基本的函数一定要好好掌握。fork()函数,开辟内存,拷贝父进程的资源(数据段,代码段),新建一个子进程。vfork()函数,保证了子进程先运行,在exec 和 exit 执行之前与父进程共享数据段,如果在子进程调用这两个函数之前...

2019-03-13 16:04:37 202

原创 strlen和sizeof 的区别

下面会举一些具体的例子来说明两者的区别例子1#include<iostream>#include<vector>#include<string.h>using namespace std;int main(){ char sayhello[] = {'h','e','l','l','o',' ','w','o','r','l','d'...

2019-03-12 22:28:36 187

原创 C语言中的main()函数的默认参数

C语言中的main()函数是有默认参数的。#include<stdio.h>int main(int argc, char * argv[]){}下面的例程帮助大家理解这两个参数的含义。#include<stdio.h>int fun (int a, int b){ int c; c = a + b; return c;...

2019-03-12 19:09:31 2861

原创 初识Linux

很早便听人讲过Linux内核的开发者,骨灰级程序员Linus的传奇故事。不禁让人感概,天才是真的牛逼啊。我选择的是CentOS 7来学习Linux,这是RadHat的社区版。当然你的选择很多:RHEL、debian...可以根据个人的需要,选择相应的系统,反正内核都是一样的。我的电脑是windows10版本,遂采用虚拟机的方式安装系统。网上的教程很多,可以自行百度。可以参照window的操...

2019-03-05 11:14:20 319

基于arm的开发

基于arm的简单开发,主要实现音乐播放器,视频播放器,电子相册等功能

2018-04-12

空空如也

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

TA关注的人

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