![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 61
摩羯ez
这个作者很懒,什么都没留下…
展开
-
Linux防火墙配置(iptables, firewalld)
转载自:https://www.cnblogs.com/pixy/p/5156739.htmlLinux中的防火墙RHEL中有几种防火墙共存:iptablesfirewalldip6tablesebtables这些软件本身其实并不具备防火墙功能,他们的作用都是在用户空间中管理和维护规则,只不过规则结构和使用方法不一样罢了,真正利用规则进行过滤是由内核的netfilter完成的。扩展:整个linux...转载 2018-03-16 17:09:40 · 631 阅读 · 0 评论 -
getaddrinfo函数ipv6的应用
1..通过域名转换为点分十进制ipv6地址addrinfo转换为sockaddr_in62.程序#include #include #include #include #include #include #include int main(int argc, char **argv){ if (argc != 2) { fprintf(stderr, "U原创 2016-07-05 17:59:43 · 4317 阅读 · 2 评论 -
linux下ipv6配置及ipv6编程的connect问题
因为需要封装socket ipv6,所以程序中需要将ipv6设置成固定。不然connect直接将ipv6的地址作为参数将连接不上服务器,提示Connect : Invalid argument。应该是和-I eth0参数有关。直接配置固定ipv6地址将解决这个问题。原创 2016-06-30 19:05:43 · 7964 阅读 · 1 评论 -
Linux下的tar压缩解压缩命令详解
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出转载 2016-07-10 10:31:05 · 510 阅读 · 0 评论 -
pthread_cancel用法及常见问题
先看下面一段程序:[cpp] view plaincopy#include #include #include #include void* func(void *) { pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);转载 2016-05-27 14:13:04 · 3911 阅读 · 3 评论 -
Linux线程属性总结
目录(?)[-]一线程的作用域scope二线程的绑定状态binding state三线程的分离状态detached state四线程的优先级priority五线程的栈地址stack address六线程的栈大小stack size七线程的栈保护区大小stack guard size八线程的调度策略schedpolicy九线程并行级别concurrency转载 2016-04-18 16:17:40 · 337 阅读 · 0 评论 -
HttpRouter项目中的问题
1.在开发过程中,使用vector数组,编译链接时没有问题,但是运行时new一个包含该vector数组的类再调用该类的其它成员时报错(内存访问错误)。原因:没有包含vector数组的头文件#include 我也是醉了~~~ 这个不应该是在编译的时候报错的么。原创 2015-09-22 20:02:44 · 703 阅读 · 0 评论 -
STL模板map erase函数使用注意
STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg1:map mapTest;typedef map::iterator ITER;ITER iter=mapTest.find(key);mapTest.erase(iter); 像上面这样只是删除单个节点,map的形为不会出现任务问题,但是当在一个循环里用的时候,往往会被误用,那是因为原创 2015-10-08 16:35:48 · 445 阅读 · 0 评论 -
Linux下内存泄露检测valgrind
Valgrind简单用法Valgrind的主要作者Julian Seward刚获得了今年的Google-O'Reilly开源大奖之一──Best Tool Maker。让我们一起来看一下他的作品。Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgri转载 2015-09-07 12:10:55 · 373 阅读 · 0 评论 -
crontab命令
前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。一、crond简介crond是linu转载 2016-08-02 15:56:08 · 258 阅读 · 0 评论 -
不带缓冲IO和带缓冲IO
先来看看不带缓存的I/O和标准(带缓存的)I/O都有那些不带缓存的I/O: read,write,open......标准(带缓存的)I/O: fgets,fread,fwrite.....这里使用两个对应的函数进行比较:ssize_t write(int filedes, const void *buff, size_t nbytes)size_t fwrit转载 2016-08-07 11:56:53 · 309 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步、I/O模型
目录(?)[-]1 概念理解2 Linux下的五种IO模型阻塞IO模型非阻塞IO模型 IO复用模型信号驱动IO异步IO模型5个IO模型的比较3 selectpollepoll简介socket阻塞与非阻塞,同步与异步1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblo转载 2017-01-16 17:20:30 · 331 阅读 · 0 评论 -
linux CentOS6.5 yum安装mysql 5.6
linux CentOS6.5 yum安装mysql 5.61.新开的云服务器,需要检测系统是否自带安装mysql# yum list installed | grep mysql2.如果发现有系统自带mysql,果断这么干# yum -y remove mysql-libs.x86_643.随便在你存放文件的目录下执行,这里解释一下,由于这个mysql的yum源服务器在国外,所以下载速度会比...转载 2018-03-06 19:53:32 · 286 阅读 · 0 评论 -
超级详细Tcpdump 的用法
超级详细Tcpdump 的用法1、抓取回环网口的包:tcpdump -i lo2、防止包截断:tcpdump -s03、以数字显示主机及端口:tcpdump -n 第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址转载 2017-10-20 10:31:31 · 378 阅读 · 0 评论 -
Git SSH Key 生成步骤
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的git则需要SSH的配置。github的SSH配置如下:一 、设置Git的user name和email:$ git config --global user.name "xuhaiyan"$ git config --global user.email "haiyan.xu.vip@gmail转载 2017-08-09 21:40:20 · 561 阅读 · 0 评论 -
vim编辑代码自动补全设置
1.安装vundle插件执行:git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 从git下面下载vundle.vim文件将如下文本设置到/etc/vimrc中set nocompatible " be iMproved, required"fi原创 2017-05-05 14:34:45 · 1332 阅读 · 0 评论 -
Linux下进程间通信之消息队列
1.消息队列 1)创建消息队列 原型: int msgget(key_t key, int msgflg); 作用: 创建或打开消息队列。 参数: key:设置队列关键值,消息队列发送端和接收端使用同一值。 msgflg:可以与IP原创 2017-03-12 22:40:29 · 266 阅读 · 0 评论 -
线程操作基础
1.线程基本函数 1)线程创建 原型: int pthread_create(pthred_t *restrict tidp, const pthread_attr_t *restrict_attr, void* (*start_rtn)(void*), void *restrict arg); 作用:原创 2017-03-12 21:40:55 · 257 阅读 · 0 评论 -
socket网络编程基础
一.socket编程函数1.socket函数原型:int socket(int domain, int type, int protocol);作用: 创建一个端点并返回一个socket描述符。参数解析:domain: 指定一个会话域名,选择一个协议族用于这个会话。包含于中。目前默认格式包括 AF_UNIX,AF_LOCAL AF_INET AF_INET原创 2017-03-07 17:41:56 · 316 阅读 · 1 评论 -
如何定位死循环或高CPU使用率(linux)
from http://blog.chinaunix.net/uid-22145625-id-4295830.html确定是CPU过高使用top观察是否存在CPU使用率过高现象找出线程对CPU使用率过高的进程的所有线程进行排序ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |grep xxx得到如下结果,其中线程2909使用了转载 2017-03-01 15:20:42 · 514 阅读 · 0 评论 -
gcc/g++ 静态动态库 混链接.
转载自:http://blog.csdn.net/wangxvfeng101/article/details/15336955我的环境: centos6 x64. gcc4.4.7在使用gcc/g++ 编译程序时我们希望指向一些库是使用静态的链接方式. 另外的一些是动态的方式.我以boost 为例.如果我们要使用静态库则是这样的:# g++ main转载 2015-09-25 09:54:06 · 481 阅读 · 0 评论 -
Linux通过samba访问windows文件
1、在Windows上设置一个共享目录如:将d:\client2设置为共享目录2、在Windows上创建一个用户,如dxy,密码123453、将dxy用户加入到共享目录d:\client2的访问组中,并设定dxy对该共享目录有完全控制权限(读、写)设置过程如下:4、在Linux下安装samba-client客户端原创 2015-08-06 18:12:47 · 9374 阅读 · 0 评论 -
学习方向性的选择
这个事情已经折磨了我很久了,我想现在还不作出选择,我将ch原创 2014-06-14 16:17:25 · 496 阅读 · 0 评论 -
学习Linux必看书籍
Linux 编程经典书籍推荐 成为一名精通 Linux 程序设计的高级程序员一直是不少朋友孜孜以求的目标。根据中华英才网统计数据,北京地区 Linux 程序员月薪平均为 Windows 程序员的 1.8 倍、Java 程序员的 2.6 倍, Linux 程序员年终奖金平均为 Windows 程序员的 2.9 倍。同时数据显示,随着工作经验的增长, Linux 程序员与 Windows 程转载 2014-05-25 17:42:18 · 575 阅读 · 0 评论 -
终端之1_对终端进行读写
shell负责将标准输入和标准输出流连接到你的程序。原创 2014-05-11 14:03:50 · 620 阅读 · 0 评论 -
Linux环境之2_用户信息
UID有它自己的类型——ui原创 2014-05-06 20:47:11 · 591 阅读 · 0 评论 -
Linux环境之1_临时文件
在很多情况下,程序会利用原创 2014-05-06 19:41:01 · 556 阅读 · 0 评论 -
文件操作之3_扫描目录
用到的系统调用函数如下:lstat原创 2014-05-05 18:11:32 · 533 阅读 · 0 评论 -
文件操作之1_底层文件访问
本章将学习如何创建、打开、读写和关闭文件,还将学习成原创 2014-05-03 20:55:40 · 728 阅读 · 0 评论 -
Linux下各种网络编程模型
[精华] Linux下各类TCP网络服务器的实现源代码 --------------------------------------------------------------------------------http://www.chinaunix.net作者:zhoulifa 发表于:2006-07-11 22:53:24 【发表评论】【查看原文】【Linux讨论区转载 2015-03-19 13:48:37 · 865 阅读 · 0 评论 -
epoll_create, epoll_ctl和epoll_wait
名词解释:man epoll之后,得到如下结果: NAME epoll - I/O event notification facility SYNOPSIS #include DEscrīptION epoll is a variant of poll(2) that can be used either as Edg转载 2015-03-19 09:45:56 · 427 阅读 · 0 评论 -
高并发网络编程之epoll详解
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。se转载 2015-03-19 14:01:25 · 877 阅读 · 0 评论 -
jsoncpp的使用
因为项目需要,接触了jsoncpp,但是在网上找了很多资料都没有自己想要的,就决定写下这篇文章。开发环境:Linux当然这个对windows也是一样适用的。使用jsoncpp时需要安装两个包jsoncpp 和 scons,我选择的是jsoncpp-src-0.5.0-rc2-amalgamation.tar 和 scons-2.1.0.tar,这个在网上面一大堆。安装的过程:参原创 2015-07-24 10:53:26 · 1123 阅读 · 0 评论 -
LINUX RTC机制实现计时器类
在LINUX中经常要使用计时器,而在LINUX环境下使用计时器不像WINDOWS环境下那样一个SETTIMER()方便,主要有三种方式:使用SLEEP/USLEEP+单独线程;SETITMER加处理信号SIGALRM,或者是RTC机制。这里我讲到的是使用RTC机制实现计时器类。这种方法最为优越,它与传统意义上的SLEEP和SIGALRM信号是分离的,它的运行不受SLEEP的影响,而像SETITME转载 2015-06-25 18:09:56 · 1155 阅读 · 0 评论 -
linux非阻塞式socket编程之select()用法
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方转载 2015-04-09 16:58:42 · 1389 阅读 · 0 评论 -
windows和Linux之间socket传输结构体关于字节对齐产生的问题
这个是我在做转码机的时候发现的问题。这个转码机大致的思路是:将转码机上面的数据用结构体打包通过socket发送给Linux客户端。Linux客户端也是用结构体去接收。发送的过程中出现了这样一个问题,就是发送的结构体数据中有不同字节的数据时,发生错误。问题原因:是因为windows和Linux平台上面结构体字节对齐的个数不同产生错误。解决方法:设置windows和Linux上面的原创 2015-04-03 12:27:18 · 2140 阅读 · 0 评论 -
32位与64位系统之间网络数据(socket)传输总结
环境限定:TCP/IP下的socket网络传输;C/C++开发语言,32/64位机。目前有两种方式对数据进行传输:1)字符流形式,即将数据用字符串表示;2)结构型方式,即将数据按类型直接传输。1)的方式保证所有的数据都是清晰的字符串明文,没有平台不一致问题,但传输的数据不定长,复合数据类型(如struct)的解析不方便。2)的方式保证数据长度固定/可控,方便对接受到数据的解析;转载 2015-04-02 16:06:11 · 5411 阅读 · 0 评论 -
ubuntu远程桌面连接windows系统
Windows下访问远程可以按下 系统键+r 运行mstsc,Linux下也可以安装rdesktop软件访问远程桌面。 ubuntu端: sudo apt-get install rdesktop windows端: 需要允许此windows远程访问。 我的windows是windows server2012,基原创 2015-03-31 09:58:12 · 548 阅读 · 0 评论 -
epoll处理并发
epoll优点:1. 支持一个进程打开大数目的socket描述符。2. IO效率不随FD数目增加而线性下降,传统的select/poll每次调用都会线性扫描全部的集合,导致效率呈现线性下降。3. 使用mmap加速内核与用户空间的消息传递。无论是select,poll还是epoll都需要内核把FD消息通知给用户空间,如何避免不必要的内存拷贝就很重要,在这点上,epoll是通过转载 2015-03-19 17:30:25 · 684 阅读 · 0 评论 -
文件操作之2_标准I/O库
在启动原创 2014-05-04 20:51:53 · 534 阅读 · 0 评论