Linux
thomas_blog
路漫漫其修远兮
展开
-
raise函数
功 能: 向正在执行的程序发送一个信号#include <signal.h>int raise( int signal );SIGABRT 终止错误 SIGFPE 浮点错误 SIGILL 无效指令 SIGINT 用户输入 SIGSEGV 非法内存存取 SIGTERM 终止程序转载 2015-03-27 15:41:28 · 1447 阅读 · 0 评论 -
守护进程创建
Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。(这里的结尾字母d就是Daemon的意思)1. 使进程在后台运行//创建子进程父进程退出if((pid = fork())&amp;gt;0) exit(0);else if(pid&amp;lt;0){ perror原创 2019-03-10 08:30:59 · 520 阅读 · 0 评论 -
回调函数
回调函数是一个通过函数指针调用的函数。如果你把函数指针(函数的入口地址)传递给另一个函数,当这个函数指针被用来调用它所指向的函数时,我们就说这个函数是回调函数原创 2014-08-04 15:47:56 · 379 阅读 · 0 评论 -
linux字符串分割 strtok
s为要分解的字符串,delim为分隔符字符串 首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULLchar *strtok(char s[], const char *delim);说明: s 不可以是字符串常量 当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符例子:int main(void){ char input[转载 2015-05-12 12:17:56 · 357 阅读 · 0 评论 -
Linux Samba服务器的安装
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,也可以用于Linux与Linux之间的资源共享安装# yum install samba samba-client samba-swat查看安装# rpm -qa | grep sambasamba-winbind-clients-3.6.23-14.el6_6.x86_64samba-3.6.23-14.e转载 2018-05-10 09:38:46 · 484 阅读 · 2 评论 -
指针和引用
void swapint(int &a,int &b){ int temp; temp=a; a=b; b=temp;}c++自动把x,y的地址作为参数传递给swapint函数int a = 1;int &b = a;b = 2;printf("a = %d\n", a); //2int a = 1;int *b = &a;*b = 2;prin转载 2015-05-31 11:30:14 · 234 阅读 · 0 评论 -
iSCSI的配置(target/initiator)
iSCSI:Internet 小型计算机系统接口 (iSCSI:Internet Small Computer System Interface) iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SC转载 2015-06-15 19:08:22 · 1209 阅读 · 0 评论 -
函数指针的定义
声明:void bubble(int);void select(int);方法一: 用类似定义数组的方法直接定义void (*func[])(int) = { bubble, select,}方法二: 采用 typedef 作为辅助typedef void (*func[])(int);func fun = { bubble, select,};使用:f转载 2015-05-08 20:34:45 · 403 阅读 · 0 评论 -
rhel安装输入法
# yum install "@Chinese Support"安装完成后,设置输入法: System -> Preferences -> Input Method转载 2015-05-19 15:51:45 · 458 阅读 · 0 评论 -
basename剔除目录
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉 Examples:basename /usr/bin/sort Output "sort"basename include/stdio.h .h Output "stdio"char *dirname(char *path); char *basenam转载 2015-05-18 09:44:10 · 386 阅读 · 0 评论 -
dlopen动态链接库操作
void *dlopen(const char *filename, int flag); //打开一个动态链接库,并返回动态链接库的句柄char *dlerror(void);void *dlsym(void *handle, const char *symbol); //根据动态链接库操作句柄与符号,返回符号对应的地址int dlclose(void *handle);glibc还增转载 2015-05-18 17:47:37 · 1123 阅读 · 0 评论 -
unlink remove
int unlink(const char *pathname);删除一个文件的目录项并减少它的链接数unlink()会删除参数pathname指定的文件。如果该文件名为最后连接点,但有其他进程打开了此文件,则在所有关于此文件的文件描述词皆关闭后才会删除。如果参数pathname为一符号连接,则此连接会被删除关闭一个文件时,内核首先检查打开该文件的进程数。如果该数达到0,然后内核检查其链接数,转载 2015-06-09 16:41:41 · 503 阅读 · 0 评论 -
amanda安装
编译出错: error: perl module ExtUtils::Embed is required yum install perl-ExtUtils-Embed.x86_64checking for GLIB - version >= 2.2.0… no yum install NetworkManager-glib-devel.x86_64Not building ‘amplot’,转载 2015-06-08 20:22:02 · 1857 阅读 · 0 评论 -
dos转unix
查看样式::set ff? //dos/unix设置::set fileformat=unix其他招数::%s/^M//g 其中^M 必须是同时按 Ctrl+V+M ,表示回车使用tr tr -d “\015” test.txt转载 2015-06-09 17:41:27 · 326 阅读 · 0 评论 -
linux单用户模式
1、当出现系统启动界面的时候, 按“e”键,进入编辑模式2、再按e,进入编辑页面,在出现的 kernel 这一行 的最后 加上 single 或者 1 将 kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVolRoot 更改为 kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGro转载 2015-06-12 11:32:50 · 1594 阅读 · 0 评论 -
linux源代码获取
ubuntu获取# which ls/bin/ls# dpkg -S /bin/lscoreutils: /bin/ls# apt-get source coreutilsCentOS获取# rpm -qf /bin/lscoreutils-8.4-9.el6.x86_64# yumdownloader --source coreutils-8.4-9.el6.x86_64RPM提取文件转载 2015-06-12 14:52:14 · 629 阅读 · 0 评论 -
宏定义
宏参数# 字符串化操作符#define example(instr) #instrstring str=example1(abc); 将会展成:string str="abc";注:1.忽略传入参数名前面和后面的空格2.当传入参数名间存在空格时,编译器将会自动连接各个子字符串,用每个子字符串中只以一个空格连接,忽略其中多余一个的空格## 符号连接操作符将宏定义的多个形参成一个实际参数名转载 2015-04-27 19:01:11 · 443 阅读 · 0 评论 -
Red Hat安装虚拟带库
1、安装五个包# yum -y install lzo-devel.x86_64 sg3_utils lsscsi mtx mt-st2、下载最新版的mhvtlmhvtl-2014-09-07.tgz3、编译内核模块# cd mhvtl-1.5# cd kernel# make# make install4、创建mhvtl用户# useradd -c "vitrual mhvtl" -M vt转载 2015-06-13 18:41:10 · 1293 阅读 · 0 评论 -
C++容器-STL
STL的最主要组成部分--容器 分为向量(vector),双端队列(deque),表(list),队列(queue),堆栈(stack),集合(set),多重集合(multiset),映射(map),多重映射(multimap)1、deque#include <deque>using namespace std;2、构造函数deque<Elem> c; //产生一个空的转载 2015-07-08 17:05:15 · 445 阅读 · 0 评论 -
system execl
system(); int system(const char *command); 在Windows下,用来调用常用的Dos命令 在Linux下,system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SI转载 2015-07-01 17:14:10 · 1234 阅读 · 0 评论 -
wait waitpid
定义pid_t wait(int *status);pid_t waitpid(pid_t pid, int *status, int options);暂时停止进程的执行,直到有信号来到或子进程结束 如果不在意结束状态值,则参数status 可以设成NULLpid = wait(NULL); wait实现# vi unistd.hstatic inline pid_t wait(int *转载 2015-07-28 16:32:39 · 458 阅读 · 0 评论 -
Linux配置IP地址
ubuntu配置IP1.直接修改配置文件 cat /etc/network/interfaces# Thisfile describes the network interfaces available on your system# andhow to activate them. For more information, see interfaces(5).# Theloopback原创 2015-03-27 15:20:05 · 454 阅读 · 0 评论 -
linux系统启动过程
启动顺序: BIOS -> MBR(stage1) -> stage2(/boot) -> /etc/grub.conf -> kernel -> /root -> /sbin/init -> /etc/inittab -> /etc/rc.d/rc.sysinit -> /etc/rc.d/rc -> /etc/rc.d/rc?.d/ -> /etc/rc.d/rc.local1. BIOS自检转载 2015-07-16 15:14:59 · 531 阅读 · 0 评论 -
linux环境变量配置文件
/etc/environment:是设置整个系统的环境 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置 /etc/bash.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取 ~/.bash_profile: 每个用转载 2015-05-04 11:13:49 · 371 阅读 · 0 评论 -
pip python
简介 pip 是一个安装和管理 Python 包的工具,python安装包的工具有easy_install, setuptools, pip,distribute。使用这些工具都能下载并安装django。而pip是easy_install的替代品。在CPython解释器,pypy解释器,可以很好地工作安装 1.首先安装python# yum install python.x86_642.下载pi转载 2015-06-18 10:04:26 · 1393 阅读 · 0 评论 -
Linux signal与定时器
1. signalsighandler_t signal(int signum, sighandler_t handler);signum:是一个信号。除了SIGKILL和SIGSTOP外的任何一种信号 handler:无返回值的函数地址SIG_IGN:忽略参数signum所指的信号SIG_DFL:恢复系统对信号的默认处理注:当一个信号的信号处理函数执行时,如果进程又接收到了该信号,该信号转载 2015-06-09 14:56:39 · 1558 阅读 · 0 评论 -
sigprocmask阻塞信号
有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数1. 信号阻塞和忽略信号的区别 操作系统在信号被进程解除阻塞之前不会将信号传递出去,被阻塞的信号也不会影响进程的行为,信号只是暂时被阻止传递。当进程忽略一个信号时,信号会被传递出去但进程会将信号丢弃2. sigprocmaskint sigprocmask(int how, const转载 2015-07-21 17:18:44 · 2053 阅读 · 0 评论 -
sigaction信号处理
1. sigactionint sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);signum:可以指定SIGKILL和SIGSTOP以外的所有信号2. struct sigactionstruct sigaction { void (*sa_handler)(int);转载 2015-07-20 12:40:11 · 945 阅读 · 0 评论 -
Linux错误码 perror errno
//errno.h#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR 4 /* Interrupted system call */#define EIO转载 2015-04-29 11:26:03 · 725 阅读 · 0 评论 -
linux下sendmail
安装# yum install sendmail.x86_64转载 2015-06-12 17:41:30 · 752 阅读 · 0 评论 -
rpm安装包制作
RPM是RPM Package Manager(RPM软件包管理器)1. 安装制作工具# yum install rpm-build2. 目录结构 /root/rpmbuild/SOURCES — 存放源代码,补丁,图标等文件 /root/rpmbuild/SPECS — 存放用于管理rpm制作进程的spec文件 /root/rpmbuild/BUILD — 解压后的文件存放在这里 /roo转载 2015-09-09 19:15:33 · 459 阅读 · 0 评论 -
子进程复制了父进程的什么
这里涉及到物理地址和逻辑地址(或称虚拟地址)的概念逻辑地址:CPU所生成的地址物理地址:内存单元所看到的地址从逻辑地址到物理地址的映射称为地址重定向CPU产生的逻辑地址被分为p (页号) 它包含每个页在物理内存中的基址d (页偏移)用来作为页表的索引用户只生成逻辑地址,且认为进程的地址空间为0到max。物理地址范围从R+0到R+max,R为基地址每个进程都有自己的虚拟地址空间,不同进程的转载 2015-08-07 13:19:25 · 917 阅读 · 0 评论 -
bacula备份工具
源码下载:http://www.bacula.org bacula适合数据业务量巨大,每天都在迅速增长,还需要以tar打包方式进行低级备份而且没有异地容灾策略。Bacula是一个完美的增量备份功能,同时还支持远程容灾备份,可以通过bacula,可以将数据备份到任意一个远程的主机上1. 安装# ./configure \--sbindir=/opt/bacula/bin \--sysconfdi转载 2015-05-14 15:40:25 · 2272 阅读 · 0 评论 -
linux安装包制作
1. 常见安装包打包或压缩文件tar,zip,gz等,一般解压后即可管理工具的deb,rpm等。这类安装文件可以通过第三方的命令安装 (apt和yum).bin类,其实就是把sh和zip打包为bin,或把sh和rpm打包为bin等。其实就是bin里面的sh来解压bin中的zip或安装rpm的过程2. run包 run包实质|-----------------||转载 2015-09-10 14:02:36 · 864 阅读 · 0 评论 -
TinyXML
1. 介绍TinyXML的一些类 TiXmlBase:整个TinyXML模型的基类 TiXmlAttribute:对应于XML中的元素的属性 TiXmlNode:对应于DOM结构中的节点 TiXmlComment:对应于XML中的注释 TiXmlDeclaration:对应于XML中的申明部分,<?versiong=”1.0” ?> TiXmlDocument:对应于XML的整个文档原创 2015-09-06 13:06:47 · 377 阅读 · 0 评论 -
linux防火墙和SELinux
Redhat使用了SELinux来增强安全,关闭的办法为: 1. 永久有效 修改 /etc/selinux/config 文件中的 SELINUX=”” 为 disabled ,然后重启。 2. 即时生效 setenforce 0关闭防火墙的方法为: 1. 永久性生效 开启:chkconfig iptables on 关闭:chkconfig iptables off 2. 即时生转载 2015-08-19 15:31:03 · 780 阅读 · 0 评论 -
Lib依赖库
查看依赖库:# ldd xxx当出现如下错误:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解决办法: 1、先用查找命令在相应的lib目录下查找,是否此库文件存在 2、修改 /etc/ld.so.conf 文件,将路径添加原创 2015-03-26 14:49:33 · 596 阅读 · 0 评论 -
Linux E667 同步失败
在使用Vim编辑/proc目录下的文件后,保存,显示“E667 同步失败”原因 因为proc这个目录是一个虚拟文件系统,它放置的数据都是在内存中,本身不占有磁盘空间,所以使用Vim编辑后会出现E667 同步失败,正确的修改方法是使用echo转载 2016-03-15 22:31:46 · 1768 阅读 · 0 评论 -
预处理-大小端
检查包含预处理指令,对源代码进行相应的转换 删除程序中的注释和多余的空白字符预处理指令#if/#ifdef/#ifndef/#else/#elif/#endif (条件编译)#define (宏定义)#include#line (行控制)#error (错误指令)#pragma# (空指令)转载 2016-03-16 20:43:02 · 529 阅读 · 0 评论 -
mmap内存映射
mmap 将一个文件或者其它对象映射进内存 mmap操作提供了一种机制,让用户程序直接访问设备内存,这种机制,相比较在用户空间和内核空间互相拷贝数据,效率更高 mmap映射内存必须是页面大小的整数倍,面向流的设备不能进行mmapvoid* mmap ( void * addr, size_t len, int prot, int flags, int fd, off_t offset ) fd转载 2016-02-18 21:56:43 · 426 阅读 · 0 评论