Linux系统编程
文章平均质量分 67
飛雪一刀
这个作者很懒,什么都没留下…
展开
-
关于硬链接和软连接(符号链接)的区别
转自:http://zqwt.012.blog.163.com/blog/static/120446842010315111759137/ 和http://www.ccw.com.cn/college/soft/b2c/os/htm2010/20101104_898264.shtmllinux系统下提供ln指令来进行文件链接。文件链接主要分为硬链接和软转载 2012-04-15 22:13:23 · 822 阅读 · 0 评论 -
fork之后父子进程虚拟地址(逻辑地址)相同的问题
背景:突然脑残,搞不明白单例在多进程中的使用,所以想看下单例在多进程中到底是不是同一份原创 2014-11-07 19:59:09 · 2661 阅读 · 1 评论 -
daemon进程
转自:http://blog.chinaunix.net/uid-27105712-id-3356916.html 为什么一定要使用daemon进程呢?Linux中每一个系统与用户进行交流的界面称为终端(terminal),每一个从此终端开始运行的进程都会依附于这个终端,这个终端就称为这些进程的控制终端(Controlling terminal),当控制终端被关闭时,相应的进转载 2014-12-21 19:26:50 · 624 阅读 · 0 评论 -
makefile编译一个目录下的文件
1、该目录下所有的文件都单独为可执行程序:CC := g++CFLAGS := \ -m32 -ggdb3 -pipe -Wall -fPIC -MMD -MP -D_REENTRANT -D_GNU_SOURCE -pthreadINC = -L./LIB = -lm\ -lpthread SRCS := $(wildcard *原创 2015-01-13 17:25:08 · 587 阅读 · 0 评论 -
使用GDB调试core文件时的一些基本知识
一、错误代号 一般出现core会由以下几种类型的错误触发生成: 1. SIGSEGV 段错误(信号11),说白了就是访问了非法内存地址,无论是超出进程范围的(地址越界)还是系统不存在的内存访问(指针指向空) 2. SIGABRT 检测异常(信号6) 调用了abort()函数导致,最常见的是对释放的内存(free())再次进行释放,或者内存分配失败原创 2015-01-18 00:32:30 · 1137 阅读 · 0 评论 -
mkdir创建多级目录
if( (iRet = access(m_UserAuthBillPath.c_str(), W_OK | R_OK | F_OK)) != 0 ){ char szBillPath[1024] = {0}; char szCurDir[128] = {0}; char* pCurr = NULL; char* pNext = NULL; memcpy(原创 2015-02-05 18:01:54 · 843 阅读 · 0 评论 -
dlopen、dlsym的简单使用
一、dlopen、dlsym我所理解的是通过dlopen可以动态加载一个so,通过dlsym可以获得该so中某接口的地址,从而实现使用该so中接口的功能。二、代码如下:mylib.cpp#include #include /* * c++编译后的文件会把函数名改名(为了实现重载功能) * 用extern "C"声明后,就会使用c的方式进行编译,编译后的文件中仍然是定义的函原创 2015-02-13 18:44:50 · 2466 阅读 · 0 评论 -
vmware11中Ubuntu14下eth0固定IP的设置方式
ru'xu'ya#vim /etc/sysconfig/network-scripts/ifcfg-eth0原创 2014-07-13 12:42:11 · 1859 阅读 · 0 评论 -
您应该知道的UNIX工具之lsof
转自:http://blog.csdn.net/yetyongjin/article/details/7740373这是“您应该知道的UNIX工具系列主题文章”的第三篇。在这篇文章里,我将介绍一个很有用的工具—lsof。如果说netcat是网络连接的瑞士军刀,那么我说lsof是UNIX调试的瑞士军刀。Lsof严格遵循UNIX的哲学典范。它仅完成一项任务,并且做得极尽完美----它能够列转载 2015-05-08 19:18:40 · 582 阅读 · 0 评论 -
atomic_inc 原子操作
atomic_inc(&v)对变量v用锁定总线的单指令进行不可分解的"原子"级增量操作,避免v的值由于中断或多处理器同时操作造成不确定状态。原子操作 所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其转载 2015-07-10 11:32:54 · 1856 阅读 · 1 评论 -
你需要知道的16个Linux服务器监控命令
如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员。有些 Linux 发行版会提供 GUI 程序来进行系统的监控,例如 SUSE Linux 就有一个非常棒而且专业的工具 YaST,KDE 的 KDE System Guard 同样很出色。当然,要使用这些工具,你必须在服务器跟前进行操作,而且这些 GUI 的程转载 2015-07-16 16:42:45 · 415 阅读 · 0 评论 -
Linux下如何生成静态库和动态库
源文件如下:testSo1.h#ifndef _TEST1#define _TEST1void print1();#endiftestSo1.cpp#include #include "testSo1.h"void print1(){ printf("fenngwang love jocelyn!\n"); return ;}testSo2.原创 2013-12-18 22:51:05 · 826 阅读 · 0 评论 -
多线程还是多进程的选择及区别
转自:http://blog.csdn.net/pingd/article/details/17895933转载 2014-10-20 22:27:34 · 574 阅读 · 0 评论 -
[转]C++按行读取文本文件
本文转自:http://blog.csdn.net/syunqiang/article/details/6425302 很多初学C++的同学,对于读取文本文件,并按照行处理数据总是有点不知如何开始,作为C++的初学者,自己在这里做一点笔记。其实利用C++按行读取文本文件其实很简单。假设有一个文本文件,如下所示: 1 2 32 3 43 4 55转载 2014-11-05 12:02:45 · 711 阅读 · 0 评论 -
Linux系统最大进程数和单进程最大线程数
一、linux系统支持的最大进程数原创 2014-11-19 23:29:46 · 9291 阅读 · 0 评论 -
gcc中的参数-I -L -l三者的区别
我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld上面这句表示在编译hello.c时:-I /home/hello/incl转载 2012-06-03 15:06:26 · 3289 阅读 · 0 评论 -
虚拟机中ssh和scp的使用
ssh是专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题,在我使用的unbuntu和fedora中都已经安装了该程序,ssh分为客户端和服务器端,通过它可以进行远程登录管理、远程文件传输等等,首先我们要在系统中开启ssh服务器,ssh服务器进程名一般为sshd,可以使用“ps -aux|grep sshd”来查看是否运行了ssh服务器程序,原创 2012-06-03 01:23:12 · 978 阅读 · 0 评论 -
epoll精髓
转自http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.htmlepoll精髓在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的sele转载 2012-07-05 17:22:34 · 747 阅读 · 0 评论 -
两个简单例子揭示makefile中“=”和“:=”的区别
转自:http://blog.csdn.net/liuqiqi677/article/details/6612786之前一直纠结makefile中“=”和“:=”的区别到底有什么区别,因为给变量赋值时,两个符号都在使用。网上搜了一下,有人给出了解答,但是本人愚钝,看不懂什么意思。几寻无果之下,也就放下了。今天看一篇博客,无意中发现作者对于这个问题做了很好的解答。解决问题之余不免感叹,有转载 2012-11-21 17:10:24 · 438 阅读 · 0 评论 -
sync、fsync、fdatasync三个函数以及O_SYNC标志位的区别
在大多数的unix/linux对磁盘io的写操作都是通过缓存来完成的,基本的原理如下:当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。 我们称之为延迟写,极大的减少了写磁盘的次数。但是在没写特殊的应用中转载 2012-12-13 00:28:58 · 2678 阅读 · 0 评论 -
Linux下core文件产生的一些注意问题
转自http://blog.csdn.net/fengxinze/article/details/6800175 前面转载了一篇文章关于core文件的产生和调试使用的设置,但在使用有一些需要注意的问题,如 在什么情况 才会正确地产生core文件。 列出一些常见问题:一,如何使用core文件1. 使用core文件在core文件所在目录下键转载 2013-01-30 20:21:46 · 696 阅读 · 0 评论 -
头文件中全局函数多次引用出现重定义的问题记录
文件:A.h .h中包含了函数实现#ifndef _A_H#define _A_H#include "stdio.h"void helloxxx(){ printf("hello world\n");}#endif库1:T1.h#ifndef _T1_H#define _T1_H#include "A.h"class T1{public:原创 2013-05-03 19:41:02 · 2127 阅读 · 1 评论 -
linux下c++的编译器g++的基本使用
linux下c++的编译器g++的基本使用g++是 linux下c++的编译器,在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件2.将预处理后的文件不转换成汇编语言,生成文件.s3.有汇编变为目标代码(机器代码)生成.o的文件4.连接目标代码,生成可执行程序g++ 编译c++经常使用的参数:-c只编译,不连接。例如: g++ -c hel转载 2013-07-24 11:50:50 · 699 阅读 · 0 评论 -
Makefile文件名操作函数
下面我们要介绍的函数主要是处理文件名的。每个函数的参数字符串都会被当做一个或是一系列的文件名来对待。$(dir ) 名称:取目录函数——dir。功能:从文件名序列中取出目录部分。目录部分是指最后一个反斜杠(“/”)之前的部分。如果没有反斜杠,那么返回“./”。返回:返回文件名序列的目录部分。示例: $(dir src/foo.c hacks)返回值是“src/ ./”。$(notdir )转载 2013-08-26 17:17:23 · 1472 阅读 · 0 评论 -
使用共享内存的单机操作单位时间限制类
使用场景:单机上有多个进程运行同一个服务,期望限制某个请求或者其它东西的每段时间运行的次数,就可以使用这个类#ifndef ACTIVITY_LIMIT_REQUEST_ACTION_H_#define ACTIVITY_LIMIT_REQUEST_ACTION_H_#include #include #include #include #include #include原创 2014-01-10 20:16:43 · 792 阅读 · 0 评论 -
四个常用的awk统计命令
http://www.2cto.com/os/201310/250329.html四个常用的awk统计命令 1、求和 cat data|awk '{sum+=$1} END {print "Sum = ", sum}'2、求平均 cat data|awk '{sum+=$1} END {print "Average = ", su转载 2014-10-24 17:03:01 · 566 阅读 · 0 评论 -
Linux下多线程的同步机制
互斥量控制每次只有一个线程获得互斥量,执行操作,其他调用lock的线程都会阻塞;互斥量适合一个进程内的多线程访问公共区域或代码段时使用。原创 2016-03-02 10:22:25 · 661 阅读 · 0 评论