linux
文章平均质量分 87
Phoenix_FuliMa
这个作者很懒,什么都没留下…
展开
-
pkg-config的用法
pkg-configpkg-config程序是干什么用的?简单的说就是向用户向程序提供相应库的路径、版本号等信息的程序。譬如说我们运行以下命令:pkg-config 查看gcc的CFLAGS参数$pkg-config --libs --cflags opencv会显示如下信息:-I/usr/include/opencv -lcxcore -lcv -lhighgu原创 2012-02-03 16:42:48 · 843 阅读 · 0 评论 -
linux下静态库的ranlib使用
inux下编译静态库的时候,ar不带任何选项打包成.a文件后,对其进行ranlib操作有 什么用,如果不进行ranlib操作会有什么后果,我编译的时候没用这步操作也能正常运行,请达人给讲解一下。谢谢。http://www.linuxsir.org/main/doc/gnumake/GNUmake_v3.80-zh_CN_html/make-11.html 更 新静态库的转载 2012-05-15 12:23:08 · 9027 阅读 · 0 评论 -
linux清理内存命令
1.清理前内存使用情况 free -m2.开始清理 echo 1 > /proc/sys/vm/drop_caches3.清理后内存使用情况 free -m4.完成!查看内存条数命令:dmidecode | grep -A16 "Memory Device$" +++++++++++++++转载 2012-05-16 17:30:15 · 79692 阅读 · 1 评论 -
getopt_long的用法
getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下: #include int getopt_long(int argc, char * const argv[], const char *optstring, const struct option转载 2012-05-19 14:36:10 · 555 阅读 · 0 评论 -
重定义malloc和free检测内存泄漏(转)
1, 定义供应用程序使用的头文件//libmem.h#ifndef _LIBMEM_H_#define _LIBMEM_H_//声明自定义malloc及free函数extern void *my_malloc(unsigned int uSize, const char *pszFunc, unsigned int uLine);extern void my_free(转载 2012-07-04 14:51:21 · 3289 阅读 · 1 评论 -
解决使用pthread_create函数造成的内存泄露
首先来看一段程序:[cpp] view plaincopyprint?//test1.cc #include #include #include #include using namespace std; const int MAX_THREADS = 10000; void* thr转载 2012-07-05 07:54:50 · 931 阅读 · 0 评论 -
如何修改环境变量LD_LIBRARY_PATH
(1)修改文件vim ~/.bash_profile(2)命令修改export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:newpath原创 2012-08-15 09:24:16 · 6232 阅读 · 0 评论 -
linux后台运行服务
有两种方式: 1. command & : 后台运行,你关掉终端会停止运行 2. nohup command & : 后台运行,你关掉终端也会继续运行 一、 简介 Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务。因此在任务管理上也有别具特色的管理思想。我们知道,在 Windows 上面,我们要么让一个程序作为服务在转载 2012-09-10 16:07:26 · 8391 阅读 · 1 评论 -
linux下内存泄露检测工具介绍
Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPLV2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件(plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgr转载 2012-10-17 22:09:40 · 25941 阅读 · 1 评论 -
Makefile详解(自己觉得重新看一次学了好多东西,红色字)
Makefile详解跟我一起写 Makefile陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix转载 2012-10-17 22:53:47 · 14623 阅读 · 2 评论 -
GDB常用命令集锦
GDB print命令打印字符串全部内容set print element 0命令 解释break NUM 在指定的行上设置断点;1.break FUNCTION 在某个函数上设置断点。函数重载时,有可能同时在几个重载的函数上设置了断点 break +OFFSET break -OFFSET 在当前程序运行到的前几行或后几行设置断点 break原创 2012-02-03 17:09:42 · 4025 阅读 · 0 评论 -
父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
wait()的函数原型是:#include #include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出。如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现转载 2012-12-06 11:40:09 · 56045 阅读 · 0 评论 -
sem_wait sem_post信号量操作进本函数
sem_wait sem_post信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为: extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value)); sem为指向信号量结构的一个指针;pshared不为转载 2013-01-08 10:37:31 · 1305 阅读 · 0 评论 -
线程同步(信号量,互斥,条件变量)
进行多线程编程,最头疼的就是那些共享的数据。因为你无法知道哪个线程会在哪个时候对它进行操作,你也无法得知那个线程会先运行,哪个线程会后运行。下面介绍一些技术,通过他们,你会合理安排你的线程之间对资源的竞争。 l 互斥量Mutexl 信号灯Semophorel 条件变量Conditions先说一下互斥量。什么时候会用上互斥量了?比如你转载 2013-01-08 14:18:48 · 769 阅读 · 0 评论 -
线程按顺序执行(迅雷笔试题)
编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。方法1:使用信号量semaphore#include #include #include #include #include sem_t g_sem;int count = 0;void *thread_f原创 2013-01-10 10:22:10 · 1540 阅读 · 2 评论 -
linux下编程获得本机IP地址
#include #include #include #include #include #include #include #include using namespace std;const char* const ETH = "eth0";int GetIP2(string &ip){ int socket_fd; struct sockaddr_in *si原创 2013-01-14 16:20:13 · 1774 阅读 · 0 评论 -
do while(0)宏的用法
#define do{} while(0) 用法妙用2010-12-10 11:44#define do{} while(0) 什么意思#define do{} while(0) 为什么这么用什么情况下用宏定义do{}while(0); 简单地说,就是能够实现复杂的定义,通用性强,任何情况下都适用。 #define MACRO_NAME(pa转载 2012-05-08 13:17:11 · 1185 阅读 · 0 评论 -
shutdown和close的区别
当所有的数据操作结束以后,你可以调用close()函数来释放该socket,从而停止在该socket上的任何数据操作:close(sockfd); 你也可以调用shutdown()函数来关闭该socket。该函数允许你只停止在某个方向上的数据传输,而一个方向上的数据传输继续进行。如你可以关 闭某socket的写操作而允许继续在该socket上接受数据,直至读入所有数据。转载 2012-05-07 23:03:20 · 10678 阅读 · 0 评论 -
LINUX开机流程详解
在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/inittab 3. /etc/rc.d/rc.sysinit 4. /etc/rc.d/rcN.d //这是几个文件夹N代表数字1,2,3,4.. 5. /etc/fstab文件介绍:1.关于/sb原创 2012-02-04 16:04:55 · 1154 阅读 · 0 评论 -
Select和epoll的区别
当一个节点和多个节点建立连接时,如何高效的处理多个连接的数据,下面具体分析两者的区别。1. select函数函数原型:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);参数介绍:(1)nfds -- fdset集合中最大描述符值加1原创 2012-02-04 14:43:08 · 13402 阅读 · 1 评论 -
LINUX主要目录及内容
“/”根目录部分有以下子目录: (1) /usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。 “/usr”目录下比较重要的部分有: /usr/X11R6 X-WINDOWS系统(version 11, release 6)原创 2012-02-04 15:20:26 · 1141 阅读 · 0 评论 -
linux压缩命令
*.Z compress 程式壓縮的檔案; *.bz2 bzip2 程式壓縮的檔案; *.gz gzip 程式壓縮的檔案; *.tar tar 程式打包的資料,並沒有壓縮過; *.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮 compress filename 压缩文件 加[-d]解压 uncompress gzip filename 压缩 加[-d原创 2012-02-04 15:23:57 · 622 阅读 · 0 评论 -
LINUX去掉“哔哔叫”的方法
(1)在shell中输入 setterm -bfreq n n是发出声音的HZ数,缺省值为750,当小于20时,speaker就哑了。(2)或者 setterm -blength N N是声音的长度 0-2000原创 2012-02-07 17:34:02 · 1112 阅读 · 0 评论 -
vim操作详解
VI常用命令(1) 进入vi的命令vifilename:打开或新建文件,并将光标置于第一行首vi+nfilename :打开文件,并将光标置于第n行首vi+filename :打开文件,并将光标置于最后一行首vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处vi-rfilename :在上次正用vi编辑时发生系统崩溃,恢复file原创 2012-02-08 09:21:54 · 20245 阅读 · 1 评论 -
linux更新系统时间&检测到系统时钟错误解决办法
尝试方法1:(1)首先检查ntpd服务是否开始,如果开始就关闭掉 "service ntpd stop"(2)再hwclock -w 或 clock --systohc更新系统时间 可以执行"clock“命令检查时间是否有变化。之后可以开启ntpd服务, 尝试方法2:(1)ntpdate cn.pool.ntp.org(2)如果你的机子不支持域名,则可以用 ping原创 2012-02-08 14:00:28 · 5241 阅读 · 1 评论 -
LINUX内核的编译与更新
为什么重新编译内核 ?Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新原创 2012-02-09 14:13:17 · 845 阅读 · 0 评论 -
LINUX硬链接和软连接的关系
首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链转载 2012-02-10 15:23:15 · 615 阅读 · 0 评论 -
编译内核
首先,说明下make mrproper和make clean的区别:make mrproper:保证源代码的干净.即清除原来配置时产生的一些文件和配置文件,使源代码恢复到最初 状态.一般得到源代码后都应先执行下此命令.make clean:清除配置时产生的大部分文件,但是保留配置文件.下面说说我对编译2.4和2.6内核还有2.4升级到2.6内核的一些理转载 2012-02-11 10:18:00 · 620 阅读 · 0 评论 -
int型和指针类型之间的关系
当需要封装一些东西的时候,可以使用int类型的数据,将指针类型的数据封装起来,typedef struct head{ int a; char b; string c;}love;struct head *a;int b = (int) a;struct head *c=(struct *)b;那么指针c和指针a指向的是相同原创 2012-03-05 15:52:31 · 1102 阅读 · 0 评论 -
fcntl函数详解
表头文件 #include#include定义函数 int fcntl(int fd , int cmd);int fcntl(int fd, int cmd, long arg);int fcntl(int fd, int cmd, struct flock * lock);fcntl()用来操作文件描述词的一些特性。参数fd代表欲设置的文件描述词,参数cmd代表欲操作的转载 2012-03-19 19:23:09 · 1218 阅读 · 0 评论 -
linux下socket传送文件
client.cpp//////////////////////////////////////客户端代码/////////////////////////////////////本文件是客户机的代码#include // for sockaddr_in#include // for socket#include // for socket#includ转载 2012-03-19 22:40:21 · 906 阅读 · 0 评论 -
linux挂载windows文件夹到linu的/home/fuli目录下面
mount -t cifs //159.226.22.212/dnc_A0213/pub /home/fuli/-o username=zhd原创 2012-03-21 10:36:55 · 920 阅读 · 0 评论 -
Linux Shell编程(基础教程)
转载:http://bbs.bitscn.com/thread-72875-1-1.html1. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头 程序必须以下面的行开始(必须放在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当转载 2014-06-10 10:24:18 · 2585 阅读 · 0 评论