自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lawrence_121

千里之行,始于足下

  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 c++代码中调用c函数

在没有源码的情况下,别人会给你一个xx.o和xx.h文件,将下面这段代码写入xx.h文件中。#ifndef _T_H_    //防止头文件被重复包括#define _T_H_#ifdef  __cplusplusextern “C”{#endifint add(int x,int y);int max(int x,int y);#ifdef __cpluspl...

2018-08-31 17:38:06 1139

转载 select、poll、epoll之间的区别

(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用...

2018-08-29 16:19:54 129

转载 让你爱不释手Sourceinsight插件

转自:https://www.cnblogs.com/wangqiguo/p/3713211.html一直使用sourceinsight编辑C/C++代码,sourceinsight是一个非常好用的编辑工具可以任意定位,跳转,回退,本人一直使用该工具做C/C++开发,sourceinsight能够满足我的大部分需求,但是有些功能没有总觉得是一个缺憾。本文将补充这些非常好用的功能。<1&...

2018-08-28 20:11:01 357 1

转载 win8.1中xshell输入中文显示问号问题

尝试使用win8.1但发现使用xshell连接虚拟机后,无法输入中文了,真是毛病,只能想办法解决了。 控制面板--语言   删除除中文输入法之外的所有输入法和美式键盘 然后就可以正常输入中文了,为了英文方便,再把美式键盘添加回来其实最终感觉,就是win8.1把美式键盘默认放在中文语言中,导致的输入问题,所以把美式键盘单独放到英语语言中,问题就解决了。   转...

2018-08-25 21:56:00 493

原创 socket详解

什么是Socket?         socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件。          常见的模式有:c/s模式和PtP模式。套接字的功能:      ...

2018-08-25 14:23:27 568

原创 IO并发之多进程及多线程实现

  服务器demo:#include "lib.h" //封装的头文件#define SERVER_PORT 6666//多线程实现void * pthread_fun(void *arg){ char buf[1024]={0}; int confd=*(int *)arg; while(1) { memset(buf,0,sizeof(buf)); ...

2018-08-22 19:05:33 801 1

原创 IO多路复用之select总结

1、基本概念  IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。...

2018-08-21 19:33:46 1833 1

转载 同步、异步与阻塞与非阻塞的区别

开场白:            异步就是异步        网上有许多I/O模型的相关文章,主要涉及四个概念,同步,异步,阻塞,非阻塞。有些文章将这四个作了两两组合,于是就有了:异步阻塞和异步非阻塞,可以明确的说,这完全是牵强之理解,无论<Unix网络编程>一书中所列的I/O模式,还是POSIX标准,都没有提这两个概念。异步就是异步!只有同步才有阻塞和非阻塞之分。     ...

2018-08-21 17:31:26 7508 5

转载 在服务器终止后,再次打开会出现bind:address already in use解决方案

       首先,我们先声明:bind:address already in use的存在是合理的,在服务端终止之后,会有一个TIME_WAIT的状态,再次打开会出现:bind:address already in use。       服务器端可以尽可能的使用REUSEADDR(在绑定之前尽可能调用setsockopt来设置REUSEADDR)套接字选项,这样就可以使得不必等待TIME_W...

2018-08-21 11:46:45 8112 1

原创 多线程详解

为什么引入线程以及使用多线程的好处?      1.运行一个进程中的多个线程,它们之间使用相同的地址空间,线程间彼此间切换所需要的时间也远远小于进程间切换所需要的时间。据统计,一个进程的开销大约是一个线程开销的30倍左右。      2.提高应用程序响应。使用多线程技术,将耗时长的操作(time consuming)置于一个新的线程。      3.使多CPU系统更加有效。操作系统会保...

2018-08-20 18:48:31 207 1

转载 博客中添加技术链接方法

博客中添加技术链接方法在许多技术博客中都会发现有技术链接、好友链接,其实这个很简单,方法如下: 格式,举例:黄炎龙的专栏补充:如果希望每个标题换行显示,就在每一行结尾加上即可。CSDN添加链接,举例:添加栏目中,点击“编辑”,如下:在内容中,写入html代码,按照参考格式,如下: 效果如下所示: 转自:https://blog.csdn.net/huang...

2018-08-18 14:08:56 895 2

原创 Linux c实现音乐播放器(madplay)

/* 项目需求: 1.实现音乐基本功能:播放,暂停及继续,下一首,上一首,退出。 2.自动生成歌曲列表文件。(重定向) 3. 实现单曲循环。 思路: 1.由于学了fork(),exec函数,想到在进程里创建一个子进程来播放音乐。 2.暂停及继续,...

2018-08-17 09:29:05 22812 43

转载 Xshell不能使用退格、删除键的解决方案

xshell正在输进操作数时,若是敲错字母,按退键删除敲错的字母,但屏幕显示出了“^H”,退不行,再按删除键,却显示出“^[[3~”,怎样才能删除字母呢

2018-08-17 08:23:39 1862 2

原创 Linux内核并发机制----自旋锁,读写锁,顺序锁

基本概念:并发:多个执行单元同时发生“执行单元”:硬件中断、软中断、进程竞态:多个执行单元同时访问共享资源产生竞态产生竞态的条件:1,必须有多个执行单元2,必须有共享资源3,必须同时访问共享资源:硬件资源(驱动程序中但凡设计的寄存器都是共享资源)和软件上的全局变量互斥访问:当有多个执行单元要访问共享资源的时候,只允许一个执行单元访问共享资源,其他执行单元禁止访问!临界区:访问...

2018-08-16 17:37:03 2507 1

原创 madplay安装及使用

安装:一. 准备:    1.madplay-0.15.2b.tar.gz    2.libmad-0.15.1b.tar.gz    3 libid3tag-0.15.1b.tar.gz     下载路径:链接:https://pan.baidu.com/s/1bme1ydfejhnMsZSYF4Cyxw 密码:16hm二 .安装步骤:      1.将这些压缩包放到/u...

2018-08-16 15:21:35 3567 10

原创 管道、共享内存、消息队列实战

无名管道:   int pipe(int fd[2]);   返回值:如果系统调用成功,返回0。如果系统调用失败返回- 1:   errno =  ENFILE (没有空闲的文件描述符)                EMFILE (系统文件表已满)                EFAULT (fd数组无效)#include"lib.h" //封装的头文件int ...

2018-08-14 19:46:20 354 1

转载 管道,消息队列,共享内存之间的区别和联系

进程间通信的目的:                 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。       共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。       通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。       资源共享:多个进...

2018-08-14 18:30:00 2227 1

原创 exec和system函数

exec函数:      概念:        提供一个在进程中启动另一个程序执行的方法,用新程序取代原调用进程的内存空间,当进程认为自己不能再为系统和用户做出任何贡献时,调用exec函数族让自己重生,如果一个进程想执行另一个程序,调用fork()创建新进程,然后调用exec,这样就实现了通过执行应用程序而产生一个新进程。      函数:                     ...

2018-08-13 17:44:59 911 1

原创 读吴军老师的《智能时代》有感

       读完《智能时代》真的是受益匪浅了。太崇拜吴军老师了,可能有的人对他不是很了解,没关系。今天我好好介绍一下我的偶像。吴军博士毕业于清华大学和美国约翰.霍普金斯大学,是著名自然语言处理和搜索专家,硅谷风险投资人。他的著作《数学之美》、《浪潮之巅》、《文明之光》和《大学之路》广受读者欢迎,其中,《数学之美》荣获第八届国家图书馆文津奖,《文明之光》荣获2014“中国好书”奖。《大学之路》荣获...

2018-08-12 21:18:33 2704 1

转载 Linux下undefined reference to ‘pthread_create’问题解决

问题:出现“undefined reference to ‘pthread_create’”,所有关于线程的函数都会有此错误,导致无法编译通过。问题的原因:pthread不是Linux下的默认的库,也就是在链接的时候,无法找到phread库中哥函数的入口地址,于是链接会失败。解决:在gcc编译的时候,附加要加 -lpthread参数即可解决。 eg:gcc rwlock.c -g -l...

2018-08-12 10:08:22 14842 1

原创 进程的创建和消亡

概念:      进程:是操作系统进行资源分配和高度的独立单位,是程序在计算机上的一次执行过程。      程序:是存放在磁盘文件中的可执行文件。区别: 进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。   进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可长久保存。...

2018-08-11 17:32:50 752 1

原创 fcntl()和lockf()

       这两个函数的作用是给文件加锁,fcntl是系统调用,而lockf是库函数。lockf实际是fcntl的简单版,所以lockf和fcntl的底层实现是一样的。    函数原型:            #include <unistd.h>      int lockf(int fd,int cmd, off_t len)           cmd的取值为:...

2018-08-10 10:32:37 611 1

原创 标准IO跟系统IO

         对于操作系统而言,I/O操作可以分为两类,一类是带缓存的IO,又称为标准IO(C标准库中提供了标准IO库,即stdio),它实现了跨平台的用户缓存解决方案。另一类是Unix/Linux下的文件IO,又称直接IO,即文件访问机制不经过操作系统内核的缓存,数据直接在磁盘和应用程序地址空间进行传输。一.标准IO:     标准IO在系统调用的上一层多加了一个缓冲区,也因此引入了...

2018-08-09 17:45:11 2723 2

原创 学生信息管理系统

需求分析:           1.分权限:学生和老师           2.学生可以查询成绩,查看自己的单科排名,查看全部学生的信息           3.学生不可以添加,修改,删除自己的成绩,只有老师可以,老师拥有所有权限。           4.可以按照科目分数段查询           5.对一些的信息进行格式处理,如编号为四位,且不能重复,姓名为字符,不能超过2...

2018-08-09 08:36:31 742 2

转载 Linux内核空间内存申请函数kmalloc,kzalloc,vmalloc

转自:http://www.th7.cn/system/lin/201606/167750.shtml      我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。  那么,在内核空间中如何申...

2018-08-04 16:51:52 323

原创 Linux内核并发机制----原子操作

并发机制的由来:       很多人会问这样的问题,Linux内核中提供了各式各样的锁机制到底有何作用?追根到底其实是由于操作系统中存在多进程对共享资源的并发访问,从而引起了进程间的竞态。这其中包括了我们所熟知的SMP系统,多核间的相互竞争资源,单CPU之间的相互竞争,中断和进程间的相互抢占等诸多问题。原子概念:        所谓的原子操作,就是该操作绝不会在执行完毕前被任何其他任务...

2018-08-04 16:30:11 905

转载 VIM常用快捷键

一、移动光标h,j,k,l 左,下,上,右ctrl-e 移动页面ctrl-f  下翻一页ctrl-b 上翻一页ctrl-u 上翻半页ctrl-d 下翻半页w 跳到下一个字首,按标点或单词分割W 跳到下一个字首,长跳,如end-of-line被认为是一个字e 跳到下一个字尾E 跳到下一个字尾,长跳b 跳到上一个字B 跳到上一个字,长跳0 跳至行首,不管有无缩进,就是跳到第...

2018-08-03 17:29:27 221

原创 猴子选大王

题目:        有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.        提示:用环形链表实现思路:        对于链表题,我们要先定义它的结构体,比如像这道题,既然要排号,我们将该定义一个id,保存编号信息。        提示中要求用环形链表,我们就要想何为环形链表,对于单链表而言,无非就...

2018-08-03 15:55:06 209

原创 在单链表的第i个位置后插入一个节点(面试题)

/* 思路:           面对这题,我们首先要冷静。            可以先从常规想,既然要插入一个结点,可以把它分成两大类:之前有无节点,如果有,根据判断条件,将其插到符合节点的后面,但你又的思考,插入位置是头部还是中间。            第二大类:就是如果之前没提供节点,那么插入的节点就是这个链表唯一的节点,切记还有一种情况。            ...

2018-08-01 16:24:53 13724

Qt点餐管理系统

我们要求开发一个功能实用、操作方便,简单明了的点菜管理系统。该系统分为三部分,也就是三个终端。收银台为一个电脑终端,负责菜谱管理、顾客结账、销量管理、抽奖活动,顾客建议、会员管理;服务员手持设备终端,负责顾客点菜,与厨房大屏幕通信;厨房终端为一个大屏幕,实时显示各个桌号的菜名,厨师根据大屏幕进行做菜。本代码只包含服务端

2019-01-12

程序员面试宝典 第三版

程序员面试宝典,面试题超全,面试前,一定要看看,你会得到你想要的

2018-09-01

仿qq登录界面的QComboBox

仿qq登录界面的QComboBox,模拟的一个用户选择输入框,用户不仅可以输入帐号,而且可以选择想要登录的帐号,并且可进行帐号的删除。

2018-02-26

空空如也

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

TA关注的人

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