自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奋斗的伙计

每天进步一点点

  • 博客(141)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 简答实用的宏的写法

本篇文章主要实现打印参数的传递,这里定义了一个宏。#define debug_printf(format, ...){\    printf("%s,%d: " format "", __func__, __LINE__, ##__VA_ARGS__);\} 

2019-01-17 16:36:39 238

原创 使用parted创建分区

今天在网上查找分区方法,发现都是用的fdisk,但自己使用总是出错,后来请求大神帮忙,发现了一个好用的工具,这里把具体的使用过程记录下来。[root@pc160 ~]# parted /dev/sdaGNU Parted 3.1使用 /dev/sdaWelcome to GNU Parted! Type 'help' to view a list of commands.(parted...

2018-11-30 10:28:47 3957

原创 linux制作本地镜像

1. 前提条件:有安装linux系统的iso2. 添加yum文件:touch /etc/yum.repos.d/iso.repo[iso]name=CentOS-$releasever - Mediabaseurl=file:///centos-iso/enabled=1gpgcheck=1gpgkey=file:///centos-iso/RPM-GPG-KEY-redhat-release3....

2018-02-27 17:32:03 2006

原创 杀死僵尸进程的方法

杀死僵尸进程: kill -9 $(ps -A -ostat,ppid | awk '/[zZ]/{print $2}')

2017-11-06 13:07:19 781

原创 ffmpeg转码

ffmpeg转码后,文件不能正常解码,缺少参数ffmpeg -i ./dir_nologo/$f -s 320x240  -vcodec libx264 -bsf:v h264_mp4toannexb -acodec copy 320p_videos/${f}

2017-10-26 19:12:11 349

原创 opengl, sdl, ffmpeg, opencv在centos下搭建

enviroment install:1. install openglyum install mesa*yum install freeglut*2. install SDL2-2.0.6:./autogen.sh./configuremake -jmake install3. install SDL2_ttf-2.0.14./au

2017-10-18 15:42:15 512

原创 SDL安装后不能正常工作的问题

最近两天一直在linux下搞SDL,折腾了两天,终于搞定;现象:SDL的程序在某些linux下可以正常工作,但在另外一些linux下不能正常工作,具体表现为文字和图像不能同时显示,只要同时显示,必定会报segment fault。最后查明原因,没有安装opengl的库,需要安装,具体详见:原文地址:http://blog.sina.com.cn/s/blog_45ca7a550

2017-10-18 15:15:24 648

原创 vnc的两种配置方法及解决vnc连不上的情况

第一种:直接配置普通桌面修改/root/.vnc/xstartup文件#!/bin/shunset SESSION_MANAGER#unset DBUS_SESSION_BUS_ADDRESSexec /etc/X11/xinit/xinitrcexec /usr/bin/mate-session &exec /usr/bin/gnome-termina

2017-10-17 10:35:01 57095 1

原创 ffmpeg实现YUV420缩放

读取YUV文件,然后实现将YUV视频缩小,直接上code:#include #include #include #include #include typedef struct{ unsigned int height; unsigned int width; unsigned long bufferSize; unsigned char *buff

2017-09-29 16:34:14 2436

转载 shell中各种括号的作用()、(())、[]、[[]]、{}

1、单小括号 ()   ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。   ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,

2017-09-28 14:20:32 230 1

原创 shell 数组赋值

shell编程,给数组赋值及两个数组初始化与比较#!/bin/shoutput_files=( $(cat outfiles) )for (( i = 0; i < ${#output_files[@]}; ++i )); do echo "ar[$i] = ${output_files[i]}"; doneinput_files=( $(cat files) )f

2017-09-22 14:07:49 10427 2

原创 自定义makefile

随着技术的不断积累,发现有很多知识有必要分享一下,在此先分享一下Makefile的使用:(一)单独模块的makefile该Makefile是我在使用的过程中逐渐积累下来的,相当于一个小的模块的Makefile,可以直接生成一个.so或.a文件# $< 第一个依赖文件# $@ 目标文件# $^ 所有依赖文件#定义gccCC := gccLD := gccMKDIR:=mkd

2016-08-26 19:25:26 815

原创 电脑无法访问非本地IP地址的方法

一般说来,如果电脑无法访问本地IP地址,可以通过添加路由的方法解决:sudo route add ip_addr gw local_gateway

2016-06-30 14:08:04 1115

转载 linux下设置共享目录

Linux系统的文件或目录的共享功能是非常强大,而且是非常灵活的,其对权限的控制可以做到非常的细致,当然如果你是通过命令行方式进行设置的 话,那么对于刚接触linux系统的用户来说将是一件十分头痛的事。但如果你所处的网络环境对安全要求不高的话,那么只要简单的几个步骤就可以建立一个 linux系统下的共享文件夹了。下面以ubuntu为例分步骤说明:安装samba和smbfs:sudo apt

2016-06-27 17:54:54 33092

转载 关于spinlock和mutex的性能差异

转自:http://www.cnblogs.com/diyunpeng/archive/2011/06/07/2074059.html锁机制(lock) 是多线程编程中最常用的同步机制,用来对多线程间共享的临界区(Critical Section) 进行保护。Pthreads提供了多种锁机制,常见的有:1) Mutex(互斥量):pthread_mutex_***2) Sp

2015-12-18 21:50:09 1789

转载 内核态和用户态通讯知识收集

在一台运行   Linux   的计算机中,CPU   在任何时候只会有如下四种状态:【1】   在处理一个硬中断。【2】   在处理一个软中断,如   softirq、tasklet   和   bh。【3】   运行于内核态,但有进程上下文,即与一个进程相关。【4】   运行一个用户态进程。  1.  Linux中的进程间通信机制源自于Unix平台上的进

2015-11-19 20:31:30 565

原创 list_head使用

list_head在内核中的实现:list.h文件源码#ifndef _LIST_H#define _LIST_H#define _INLINE_ static inlinestruct list_head { struct list_head *next, *prev;};#define LIST_HEAD_INIT(name) {&(name), &(name)

2015-11-19 10:26:33 467

原创 python实现文本分析并执行linux命令

本文主要实现一个简单的python脚本,将使用git commit误操作,导致想文本库中添加了过多的.o文件,现在通过脚本删除脚本实现方式:import osdef generate_log(): os.system("git status >> log ")def delete_log(): os.system("rm log")def print_words

2015-11-17 09:18:29 1277

原创 centos更新镜像源问题

最近新安装了centos,但是在更新镜像时,总是出错,折腾了1个多小时终于解决了。问题描述:按照网上说的方法,下载新的yum镜像文件****.repo, 然后使用yum clean all,然后yum makecache结果显示:file:///media/CentOS/repodata/repomd.xml: [Errno 14] Could not open/read file:/

2015-11-16 20:17:34 2114

转载 共享内存陷阱和分析

所谓共享内存就是使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。其他进程能把同一段共享内存段“连接到”他们自己的地址空间里去。本文详细分析了常见的Linux共享内存陷阱,希望对大家有所帮助。AD:【线下活动】三大新锐HTML 5企业汇聚51CTO—大话移动前端技术所谓共享

2015-10-16 23:21:12 762

转载 进程间通信-共享内存

一、IPC(Inter-Process Communication,进程间通信)对象的介绍System V 的IPC对象有共享内存、消息队列、信号灯。注意:在IPC的通信模式下,不管是使用消息队列还是共享内存,甚至是信号灯,每个IPC的对象都有唯一的名字,称为"键"(key)。通过"键",进程能够识别所用的对象。"键"与IPC对象的关系就如同文件名称于文件,通过文件名,

2015-10-16 22:05:17 352

转载 gdb使用

转自:http://blog.csdn.net/qibaoyuan/article/details/6116265在gdb设置:set print pretty on  ===========================其他七、设置显示选项    GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。    set print address    set p

2015-10-16 13:36:33 324

原创 MD5校验

(一)来自:http://www.cnblogs.com/zhenjing/p/openssl.htmlOpenSSL http://www.openssl.org/ OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL 的密码算法库包含多种加密算法的实现,可单独应用。OpenSSL 下载:http://www.ope

2015-10-15 12:58:08 603

转载 epoll 的accept , read, write(重要)

在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:* EAGAIN: 再试一次* EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block* perror输出:  Resource temporarily unavailable

2015-10-12 22:36:56 570

转载 fedora 使用音乐播放器

因为安装环境的不同,Fedora在安装后会安装不同的软件包。通常在安装的时候有多种选择:    1、桌面环境: 适合个人日常使用,安装包含办公软件(Fedora 默认安装Open Office)、娱乐影音软件,此版本不会默认不会安装source包,经常会在安装其他软件的时候,提示找不到: build 文件。              2、开发环境: 适合软件开发人员使用,不会安装办公软

2015-10-11 18:51:22 1516

转载 linux下select使用

在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核:      •我们所关心的文件描述符      •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常)      •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)   从 sel

2015-10-08 15:32:12 966

原创 各种二分查找算法总结

1. 最基本的二分查找算法:在已排好序的vector中查找是否存在targetbool findData(vector &nums, int target){ if(nums.size()==0) return false; int low=0; int high=nums.size()-1; int mid; while(low<=high){ mid=(low+hig

2015-10-03 17:12:48 461

转载 sendmsg和recvmsg

已经工作了接近一年的时间,工作之余也只能看看书,了解一下相关的技术细节,在网络设备公司不可避免的要和socket打交道,但通常都是调用公司封装好的接口,没有去考虑这些封装背后的工作,回过头来看真的觉得进步很小,我只能逼自己看看书,看看一些好的代码。sendmsg和recvmsg这两个接口是高级套接口,这两个接口支持一般数据的发送和接收,还支持多缓冲区的报文发送和接收(readv和sendv

2015-09-27 20:31:46 3872

原创 linux多进程通信

1. 信号量机制实现进程通信:先看一个例子摘自:http://blog.chinaunix.net/uid-23215128-id-2938280.html使用sem_open,sem_unlink,sem_getvalue,sem_post,sem_wait,sem_close,等信号量机制1. sem_sync.h#ifndef _SEM_SYNC_

2015-08-25 17:14:50 567

原创 Majority Element I, II

Majority ElementGiven an array of size n, find the majority element. The majority element is the element that appears more than⌊ n/2 ⌋ times.You may assume that the array is non-empty and

2015-08-21 10:38:43 325

转载 C++RTTI强制转型

C 风格(C-style)强制转型如下:(T) expression  或T(expression) //函数风格(Function-style)两种形式之间没有本质上的不同。对于具有转换的简单类型而言C 风格转型工作得很好。然而,这样的转换符也能不分皂白地应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:reinterpret_cast, stati

2015-08-20 19:55:10 427

原创 自动产生多个随机网址

#include#include#include#include#includeusing namespace std;int generateAddr(char * buf, int wordCount){ int idx=0; int wordSize=0; int tmp; strcpy(buf, "http

2015-08-20 09:33:11 2131

转载 字符串hash函数

基本概念所谓完美哈希函数,就是指没有冲突的哈希函数,即对任意的 key1 != key2 有h(key1) != h(key2)。设定义域为X,值域为Y, n=|X|,m=|Y|,那么肯定有m>=n,如果对于不同的key1,key2属于X,有h(key1)!=h(key2),那么称h为完美哈希函数,当m=n时,h称为最小完美哈希函数(这个时候就是一一映射了)。在处理大规模字符串数据时,

2015-08-19 21:23:34 387

原创 多线程实现对同一个或多个文件的读写操作

程序用途:实现多个线程对同一文件的读写操作程序代码:test.c/*该程序在Ubuntu下测试通过*/#include#include#include#include#include#include#includeconst int buf_size=1024;const int buf_size2=1024*2;/*获取线程的id必须使用syscall,不能

2015-08-19 13:25:56 18180

原创 最低公共祖先Lowest Common Ancestor of a Binary Tree

Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes

2015-08-19 11:07:54 287

转载 二叉树后续遍历算法

二叉树后续遍历非递归算法:void BT_PostOrderNoRec(pTreeT root) { stack s; pTreeT pre=NULL; //pre指针是重点 while ((NULL != root) || !s.empty()) { if (NULL != root) { s

2015-08-18 21:57:34 723

原创 getopt_long使用

linux系统命令解析接口:#include #include #include /* 程序的名称。*/const char* program_name;/* 将程序使用方法输出到STREAM中(通常为stdout或stderr),并以EXIT_CODE为返回值退出程序。函数调用不会返回。*/void print_usage (FILE* stream, int exit_co

2015-08-17 16:46:05 360

原创 makefile使用教程

来自:http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/A Simple Makefile TutorialMakefiles are a simple way to organize code compilation. This tutorialdoes not even scratch the surface o

2015-08-17 14:41:15 741

原创 n皇后问题

N-Queens:来自leetcodeFollow up for N-Queens problem.Now, instead outputting board configurations, return the total number of distinct solutions.计算机n皇后问题的不同放法:class Solution {public:

2015-08-13 21:15:42 475

转载 linux中fork()函数详解(原创!!实例讲解)

转自:http://blog.csdn.net/jason314/article/details/5640969一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函

2015-08-11 14:59:18 249

hash表C语言实现

这是百度一位大牛写的hash结构

2016-07-26

cuda编程手册

本教程主要是给cuda编程的初学者准备的,希望对那些初学者有用

2014-08-31

c++游戏编程基础代码

本代码与c++经典游戏程序设计相配套的代码资料

2013-09-08

计算机考研专业课资料

好几年的试题及模拟题,不要错过啊,计算机专业统考必备的

2013-09-08

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

TA关注的人

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