
linux
aircoder
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
简单的linux -c http-client
#include#include #include#include#include#include "httpclient.h"#include#include#include#include const char * http_s = "http://";typedef struct{ char *url; int port; ...原创 2013-10-23 15:35:09 · 1106 阅读 · 0 评论 -
linux 进程通信方式
# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共...原创 2013-07-07 20:46:10 · 90 阅读 · 0 评论 -
判断两个一个链表是否存在循环(C专家编程中的问题)
判断两个一个链表是否存在循环(C专家编程中的问题)#include#include#include /**//*目的:检测指定的链表中是否存在循环*//**//*算法概要:同时指定p1,p2指向头节点,p1步长为1向后移,p2步长为2向后移*//**//*如果p1或p2指向NULL,说明不存在循环*//**//*如果存在循环,则p2经过循环必然会追上p1*//**/...原创 2013-06-24 15:35:34 · 199 阅读 · 0 评论 -
linux命令
lsof -i tcp:27113 查看端口被那个程序占用测试cpu使用率: vmstat, mpstat查看运行时间在执行程序前,加time,如:输入time ./programname strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切...原创 2012-12-17 19:03:03 · 124 阅读 · 0 评论 -
linux进程和线程的clone 创建。和线程调度
[code="java"][b]Linux下进程和线程的创建都是通过clone实现的. clone函数功能强大,带了众多参数,clone可以让你有选择性的继承父进程的资源,你可以选择想vfork一样和父进程共享一个虚存空间,从而创造的是线程,你也可以不和父进程共享,你甚至可以选择创造出来的进程和父进程不再是父子关系,而是 兄弟关系[/b][/code]pthread_creat...原创 2012-11-30 00:56:55 · 665 阅读 · 0 评论 -
atoi源码
原文: http://blog.csdn.net/eroswang/article/details/5804244isspace(int x) { if(x==' '||x=='/t'||x=='/n'||x=='/f'||x=='/b'||x=='/r') return 1; else return 0;...原创 2013-05-14 19:32:55 · 270 阅读 · 0 评论 -
为重负网络优化 Nginx 和 Node.js
原文:http://linux.cn/forum.php?mod=viewthread&tid=10591&fromuid=1为重负网络优化 Nginx 和 Node.js在搭建高吞吐量web应用这个议题上,NginX和Node.js可谓是天生一对。他们都是基于事件驱动模型而设计,可以轻易突破Apache等传统web服务器的C10K瓶颈。预设的配置已经可以获得很高的并发,不过,要是大家想在...原创 2013-05-13 01:12:15 · 125 阅读 · 0 评论 -
vim设置
-2)hi Normal ctermbg=Black ctermfg=white ctermbg表示背景色。ctermfg 表示前景色。-1)1. 打开远程主机上的.bashrc文件:vim ~/.bashrc 2. 在文件末尾加上一句:export TERM=xterm 3. 保存并退出文件 4. 退出会话,重新登录一下,试试看! 1) ...原创 2012-11-22 20:28:41 · 157 阅读 · 0 评论 -
vim
:100 跳到 100 行1)vim 一个界面查看多个文件 :sp **.py crtl + w 进行切换2) crtl + n 提示不全3) :nohl 去掉查找显示的高亮4)h()ctrl+f(下一页) ctrl+b(上一页)ctrl+d(下半页)ctrl+u(上半页)0 到一行的最后, $ 到一行的开始G 移动到文件的...原创 2012-11-22 17:53:28 · 145 阅读 · 0 评论 -
c语言特殊字符串复制
2.strcpy和memcpy主要有以下3方面的区别。2.1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2.2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。2.3、用途不同。通常在复制字符串时用strcpy,而需要复...原创 2013-05-06 01:59:14 · 580 阅读 · 0 评论 -
linux运维常用命令
推荐一个实用命令:awk '{x+=$2} END {print x}' filename,计算文件中第二列所有数字的和,方便快捷1.删除0字节文件find -type f -size 0 -exec rm -rf {} \;2.查看进程按内存从大到小排列ps -e -o "%C : %p : %z : %a"|sort -k5 -nr3.按cpu利用率...原创 2013-07-13 20:40:58 · 113 阅读 · 0 评论 -
Linux下如何将进程绑定在特定的CPU上运行
Linux下如何将进程绑定在特定的CPU上运行?以root用户执行如下命令#bind原创 2013-07-22 10:52:54 · 229 阅读 · 0 评论 -
gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-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...原创 2013-07-22 22:45:49 · 221 阅读 · 0 评论 -
linux进程cpu资源分配命令nice,renice,taskset
nice,renice 指定进程运行的优先级taskset 进程 在制定的cpu 上运行原创 2013-09-04 14:03:48 · 336 阅读 · 0 评论 -
c 专家编程
总结:-2>int * a = NULL; 10 int *s[3] = {a}; 11 int ss[3]={1,2,3}; 12 a = ss; 13 printf("%d,\n",*a); 14 printf("%d,\n",*(a+1)); 15 printf...原创 2013-08-13 17:06:12 · 110 阅读 · 0 评论 -
Linux中线程与CPU核的绑定
最近在对项目进行性能优化,由于在多核平台上,所以了解了些进程、线程绑定cpu核的问题,在这里将所学记录一下。 不管是线程还是进程,都是通过设置亲和性(affinity)来达到目的。对于进程的情况,一般是使用sched_setaffinity这个函数来实现,网上讲的也比较多,这里主要讲一下线程的情况。 与进程的情况相似,线程亲和性的设置和获取主要通过下面两个函数来实现: ...原创 2013-08-09 15:15:40 · 205 阅读 · 0 评论 -
建议编译的时候加警告 atof
#include double atof(const char *nptr);// 使用这函数必须引入 ,否则会出现奇怪的错误, 建议编译的时候加警告: gcc -o -g -Wall 15 15.c原创 2013-08-07 20:46:45 · 290 阅读 · 0 评论 -
feodra 17 安装 chrome
1: 下载:http://www.google.cn/chrome/intl/zh-CN/landing_chrome.html运行: sudo rpm -ivh google-chrome-stable_current_x86_64.rpm报错:lsb >= 4.0 is needed by google-chrome-stable-28.0.1500.95-213514.x86...原创 2013-08-04 01:35:45 · 159 阅读 · 0 评论 -
Sudo提权出现:xx用户不在 sudoers 文件中
Sudo提权出现:xx用户不在 sudoers 文件中症状终端使用sudo提权出现:xx用户不在 sudoers 文件中。此事将被报告。解决出现这个问题是sudo的配置文件出错,修改sudo的配置文件即可解决 使用su 切换到root,然后终端执行: sudo gedit /etc/sudoersDefaults env_...原创 2013-08-03 20:22:55 · 301 阅读 · 0 评论 -
select,epoll,poll比较
select,poll,epoll简介selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描pollpoll本质上和se...原创 2013-07-28 17:13:02 · 105 阅读 · 0 评论 -
gcc,g++安装
安装gcc:sudo apt-get install build-essentialsudo apt-get install g++原创 2013-02-25 21:27:11 · 99 阅读 · 0 评论 -
ubuntu12.04 vim源码 安装指南
不知到为什么使用apt-get不能安装vim了,在网上看资料,源码安装了!使用root用户运行运行 :tar jxf vim-7.3.tar.bz2运行 : cd vim73运行 : cd src运行 : ./configure运行 : make报错:no terminal library foundchecking for tgetent()... ...原创 2013-02-22 21:48:33 · 207 阅读 · 0 评论 -
《APUE》:线程和fork(父子进程锁)
《Unix环境高级编程》这本书附带了许多短小精美的小程序,我在阅读此书的时候,将书上的代码按照自己的理解重写了一遍(大部分是抄书上的),加深一下自己的理解(纯看书太困了,呵呵)。此例子在Ubuntu10.04上测试通过。程序简介:多线程的进程通过fork函数创建子进程时,如果要清除各种锁的状态,可以通过调用pthread_atfork函数建立fork处理程序。//《APUE》程序1...原创 2013-04-29 21:07:42 · 249 阅读 · 0 评论 -
CentOS升级Python到2.7版本
[root@localhost ~] python -V Python 2.4.31.先安装GCCyum -y install gcc2.下载Python-2.7.2[root@localhost ~] wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz23.解压Python-2.7.2...原创 2013-04-23 15:24:43 · 125 阅读 · 0 评论 -
Linux多线程同步的几种方式
Linux多线程同步的几种方式 线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。 1)互斥锁(mutex) 通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。 int pthread_mutex_init(pthread_m...原创 2013-04-22 22:49:46 · 175 阅读 · 0 评论 -
exit()’与‘_exit()’
#define __NR_exit 1#define __NR__exit __NR_exit /* 摘自文件include/asm-i386/unistd.h*/ "__NR_"是在Linux的源码中为每个系统调用加上的前缀,请注意第一个exit前有2条下划线,第二个exit前只有1条下划线。Linux核心还提供了一些C语言函数库,这些库对系统调...原创 2013-04-03 11:04:55 · 114 阅读 · 0 评论 -
linux 时间获取
1 #include 2 #include 3 4 int main() 5 { 6 7 int seconds = 0; 8 seconds = time(NULL); 9 10 time_t t; 11 t = time(NULL); 12 13 ...原创 2013-04-02 20:44:41 · 88 阅读 · 0 评论 -
epoll
二、工作模式epoll有2种工作方式:LT和ET。l LT(level triggered)是缺省的工作方式,并且同时支持block和no-block socket。在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,内核还是会继续通知你的,所以,这种模式编程出错误可能性要小一点。传统的select/poll都是这种模型的代表...原创 2013-04-01 17:34:48 · 89 阅读 · 0 评论 -
linux系统父子进程共享端口
nginx 就是使用了父子进程 共享端口,所以nginx快速这个也算一个原因#include #include #include #include #include #include #include int main(){int sfp,nfp;struct sockaddr_in s_add,c_add;int sin_size;un...原创 2013-04-01 01:30:06 · 592 阅读 · 0 评论 -
开源的一个线程池
/* Thread Pool implementation for unix / linux environments Copyright (C) 2008 Shobhit Gupta This program is free software: you can redistribute it and/or modify it under the ter...原创 2013-03-29 17:06:56 · 199 阅读 · 0 评论 -
static volatile 使用问题
static volatile int k; 在。h 文件中这样写是错误的。但是都在一个。cpp中是ok的例如: 1 #include 2 3 using namespace std; 4 5 int main() 6 { 7 8 9 static bool volatile s = f...原创 2013-03-29 14:46:38 · 510 阅读 · 0 评论 -
pthread_mutex_destroy 信号量将阻塞!
#include 2 #include 3 #include 4 pthread_mutex_t command_mutex_ = PTHREAD_MUTEX_INITIALIZER; 5 pthread_cond_t command_cond_ = PTHREAD_COND_INITIALIZER; 6 int main(){ 7 8 pth...原创 2013-03-29 11:14:52 · 1173 阅读 · 0 评论 -
linux多线程之pthread_cancel结束线程(防止死锁)
linux多线程之pthread_cancel结束线程摘要:这篇文章主要从一个 Linux 下一个 pthread_cancel 函数引起的多线程死锁小例子出发来说明 Linux 系统对 POSIX 线程取消点的实现方式,以及如何避免因此产生的线程死锁。目录:1. 一个 pthread_cancel 引起的线程死锁小例子2. 取消点(Cancellation Point)3...原创 2013-03-28 18:28:21 · 318 阅读 · 0 评论 -
socket参数详解:KeepAlive
TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。它的功效和用户自己实现的心跳机制是一样的。开启Keepalive功能需要消耗额外的宽带和流量,尽管这微不足道,但在按流量...原创 2013-03-19 13:24:30 · 1349 阅读 · 0 评论 -
vfork() 使用注意
linux编译错误__new_exitfn: Assertion `l != ((void *)0)' failed2012-08-23 16:47, Tags: 420人阅读 创建进程:fork(), vforl()fork():创建进程后返回两个值,分别将子进程pid返回给父进程,将0返回给子进程。子进程完全复制 父进程的资源,并独立于父进程,有良好的并发性。...原创 2013-04-03 17:40:23 · 291 阅读 · 0 评论 -
makefile例子
CC = gccCPP = g++CFLAGS = -g -Wall -WerrorDEST = exeOBJECT = main.o ManagerService.o bloom.o$(DEST): $(OBJECT) $(CPP) $(CFLAGS) $(OBJECT) -o $(DEST) -leventbloom.o: bloom.c ...原创 2013-04-04 21:29:37 · 120 阅读 · 0 评论 -
linux 信号量
目录 SIGCHLD 描述编辑本段SIGCHLDSIGCHLD属于unix以及类unix系统的一种信号产生原因 siginfo_t代码值1,子进程已终止 CLD_EXITED2,子进程异常终止(无core) CLD_KILLED3,子进程异常终止(有core) CLD_DUMPED4,被跟踪子进程以陷入 CLD_TRAPPED5,子进程已...原创 2013-04-04 22:24:36 · 153 阅读 · 0 评论 -
防止pause和alrm产生竞争
1 #include 2 #include 3 #include 4 #include 5 #include 6 static jmp_buf env_alrm; 7 8 9 void alarm_signal(int a) 10 { 11 longjmp(env_alrm,1); 12 13 } 14 ...原创 2013-04-08 22:51:30 · 142 阅读 · 0 评论 -
git 安装
在CentOS上安装Git作者: 云飛 日期: 2012/07/05 发表评论 (0)查看评论CentOS 5的yum源中没有git,只能自己编译安装,现记录下编译安装的内容及错误解决方法,留给自己备忘。编译基础环境环境1yum -y install gcc make 确保已安装了依赖的包1yum install -y curl curl-devel zlib...原创 2013-04-08 15:54:34 · 113 阅读 · 0 评论 -
关于linux环境下信号SIGCHLD的排队机制
下面是关于在SIGCHLD的一遍网上的摘要,但是在linux中是不许要这样做的。 signal(SIGCHLD,SIG_IGN); 就可以了,我已经子啊ubuntu12.04上面做过了测试! 1 #include 2 #include 3 #include 4 #include 5 #include 6 int main() 7 { 8 ...原创 2013-04-07 22:13:48 · 363 阅读 · 0 评论