- 博客(19)
- 收藏
- 关注
原创 linux下俄罗斯方块
在编译的时候:线程版需要连接 curses库 和pthread库 ;进程版只要连接curses库即可由于这个代码是本人第一次编写的,有些地方可能写法不规范,注释不明了,仅限参考。1、进程版#include #include #include #include #include #include #include #define BUFSIZE 1024#define
2017-09-14 10:52:43 2245
原创 自己整理的几个C面试小题
概念题:1.c++中为什么用模板类?a.与类型无关,具有很高的可复用性。b.他在编译的时而不是运行时候检查数据类型,保证了类型安全性c.他与平台无关的,具有可已移植性d.可用于基本数据类型e.可用来创建动态增长和减小数据结构 //?????2.简介多态,虚函数,纯虚函数多态:一个接口(方法),实现不同种功能虚函数:用virtual修饰的重写方法纯虚函数:在虚函数后面加上=
2017-09-14 10:15:45 382
原创 C指针强化测试
接下来的几个用代码的形式给出,可以直接粘贴到vim编译器中进行运行,测试1:#include#include /*---------------------------19-----------------------------*/#if 0int main(){ int a=3,b=4,c=0; c = a+++b; print
2017-09-14 10:02:26 489
原创 39个C语言小程序(适合新手)
1 %c 输入 2 个数字(0--9),将 2 个数字组成 2 位数并每位上的数字不能相同,以%d 输出。#include int main(){ char a,b; int sum; printf("输入两个数字(0~9\n"); scanf("%c %c",&a,&b); if(a==b){
2017-09-13 14:53:41 17323 3
原创 linux下的静态库和动态库
意义:为了避免代码的重写率,我们可以将已经写好的代码形成一个库,当我们再次用到的时候可以直接调用,而不是重新去写,即“站在巨人的肩膀上”。linux下有两种库:一、静态库:准备工作://swap.cint swap(int *x,int *y){ int temp; temp = *x; *x = *y; *y = temp; retur
2017-09-13 11:15:50 331
原创 linux下将bmp图片的RGB数值打印到文件中,并另存。
前面我们可以获取到bmp文件头的信息,那么这里我们的思路就是根据获取到的文件头信息,将文件头中的各种变量赋值即可;例如我们获取时,得到height=600,那么我们在设置时,可以人为将其设置成height=600条件:1.用windows画图工具另存的一张BMP格式图片;2.linux 或 ubuntu下vim编译器;#include #include #inclu
2017-09-11 17:41:29 1515
原创 linux下读取bmp图片文件头
建议先了解下BMP图片格式.条件:1.用windows画图工具另存的一张BMP格式图片;2.linux或ubuntu下vim编译器#include #include #include #include #pragma pack(2) //对齐using namespace std; typedef struct BITMAPFILEHEADER {
2017-09-11 17:34:28 3730
原创 Ubuntu下配置IP地址的方法
配置IP地址主要有两种方法。1>通过命令来实现:sudo ifconfig eth0 IP地址 netmask 子网掩码------配置IP地 sudo route add default gw 网关------------添加默认路由vim /etc/resolv.conf 配置文件 添加nameserver DNS----配置DNSsudo /etc/init.d/netw
2017-09-11 15:31:36 27787
原创 直白解读网络编程第一节_文件I/O(入门)
(一) 库函数中针对文件操作的实现fopen() :打开fclose() :关闭fread() :读fwrite() :写fscanf() :输入fprintf() :输出fgets(); fputs();gets() puts():针对字符串的读写操作fgetc();fputc(); :针对字符的读写操作----------------------------
2017-08-23 11:34:04 390
原创 直白解读linux下pthread的简单操作
线程:他是轻量级的进程,他有系统的库函数提供,linux中的man 2中的函数,属于系统调用;线程的创建是在进程之中,在linux中用task_struct来描述一个线程,(进程和线程都参与统一的调度),一个进程可以有多个线程,他们可以共享相同地址空间的多个任务。一个进程中的多个线程共享以下资源:1:代码段/指令2:静态数据(全局变量,静态变量)3:进程中打开的文件描述符4:信
2017-08-22 14:51:08 683
原创 直白解读linux下V4L2拍照
声明:环境:linux或ubunt下编辑器:vim编译工具:gcc设备:USB接口的摄像头难点理解:1.对于缓冲帧的解释:假设我们申请5个缓冲帧,那么这5个缓冲帧就相当于5个盘子,操作系统在内存中开辟5个缓存区队列来存放这5个盘子,当相机拍照后将数据放入盘子中,我们通过VIDIOC_DQBUF取数据可以理解为将盘子取出来,然后对数据操作,操作完成之后,要通过VIDIOC_Q
2017-08-22 11:53:00 3331 1
原创 线程绑核的简单操作
为了加快程序的运行速度和充分利用CPU资源,我们可以人为将不同线程绑定在不同的cup上,例如有两个线程A,B,其中A已经在CPU0上运行,并且CPU0上还有其他的任务,那么我们可以将线程B绑到CPU1上,这样就可以减轻CPU0的负担,从而充分利用多核CPU。说的明白点,原来是一个CPU作两件事,现在两个CPU同时做两个时,使效率更高。话不多说,直接上代码:#define _GNU_SOUR
2017-08-10 09:31:03 3830
翻译 assert()函数用法总结
程序一般分为Debug版本和Release版本,Debug版本用于内部调试,Release版本发行给用户使用。 断言assert是仅在Debug版本起作用的宏,它用于检查“不应该”发生的情况。以下是一个内存复制程序,在运行过程中,如果assert的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。 assert不是一个仓促拼凑起来的宏,为了
2017-08-09 10:09:00 1336
原创 关于mutex与cond的用法
锁的概念:在CPU运行过程中,不会单一的取执行一个事件,而是通过线程,或者进程来进行执行,这样CPU的利用率才得以提高,但是在不同的线程之间,由于互相独立,那么对于资源的访问来说,就可能同时进行,假如A进程获取一个临时变量temp的值,但是在获取的同时,B进程却将temp的值改变了,这时就会出现资源访问的冲突,为了更好的解决这个问题,就有了锁的概念,说的明白些,他就像现实中的锁一样,我们程序中所有
2017-08-08 11:12:06 3378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人