Linux环境编程
文章平均质量分 81
深度Java
这个作者很懒,什么都没留下…
展开
-
更换yum的源为阿里云或者网易
1.备份原本的yum源:#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2.下载阿里云的yum源:CentOS6,CentOS7,CentOS8下对应的即可wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ali...原创 2020-04-27 23:37:26 · 898 阅读 · 0 评论 -
安装最新的GCC
GCC版本低了会出错,导致头文件不能解析,需要升级GCC。一、下载gcc最新源码包#wget http://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz二、解压缩#tar -xzvf gcc-9.3.0.tar.gz三、进入解压缩目录#cd gcc-9.3.0四、运行download_prerequisites脚本,这个脚本...原创 2020-04-23 15:08:13 · 13355 阅读 · 2 评论 -
Linux下各类TCP网络服务器的实现源代码
http://www.linuxeden.com/forum/t146870.html 大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务。这里附上源代码来个小结吧。首先,循环网络服务器编程实现的步骤是这样的:这种服务器模型是典型循环服务,如果不加上多进程/线程技术,此种服务吞吐量有限,大家都可以看到,如果前一个连接服务数据没有收发完毕后面的连接没办法处理。所转载 2012-03-23 18:44:57 · 3297 阅读 · 0 评论 -
深刻理解Linux进程间通信(IPC)
深刻理解Linux进程间通信(IPC)0. 序1. 管道1.1. 管道概述及相关API应用1.2. 有名管道概述及相关API应用1.3. 小结1.4. 参考资料2. 信号(上)2.1. 信号及信号来源2.2. 信号的种类2.3. 进程对信号的响应2.4. 信号的发送2.5. 信号的安装(设置信号关联动作)2.6. 信号集及信号集操作函数2.7. 信号阻塞与信号未决2.8. 参考资料3. 信号(下)转载 2012-04-01 17:42:04 · 6070 阅读 · 6 评论 -
Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一些基本的信号类型和信号对转载 2012-04-24 17:04:31 · 3796 阅读 · 1 评论 -
SVN更换修改用户名
如果装了TortoiseSVN: Settings -> Saved Data -> Authentication Data -> clear。即可清除保存的上个用户登录信息;当再次用到svn时,会提示输入用户名密码,输入新的用户名密码即可。 或者,手动删除下面目录下的svn登录用户信息保存文件: C:\Documents and Settings\javaLee\Application Dat原创 2012-05-29 09:17:39 · 15120 阅读 · 2 评论 -
Linux execlp函数
execlp从PATH 环境变量中查找文件并执行定义:int execlp(const char * file,const char * arg,……);头文件:#include说明:execlp()会从PATH 环境变量所指的目录中查找符合参数file的文件名, 找到后便执行该文件, 然后将第二个以后的参数当做该文件的argv[0]、argv[1]……, 最后一个参数必须用空指针(NULL)作结原创 2012-05-15 11:46:39 · 50003 阅读 · 8 评论 -
使用Nmap获取目标服务器开放的服务以及操作系统信息
http://nmap.org/download.html1.下载安装 rpm -vhU http://nmap.org/dist/nmap-5.61TEST5-1.i386.rpm rpm -vhU http://nmap.org/dist/zenmap-5.61TEST5-1.noarch.rpm rpm -vhU http://nmap.org/dist/ncat-5.61TEST5原创 2012-03-23 10:59:37 · 14886 阅读 · 0 评论 -
Linux Epoll介绍和程序实例
http://blog.csdn.net/sparkliang/article/details/4770655 Linux Epoll介绍和程序实例 1. Epoll 是何方神圣? Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。 其实在 Lin转载 2012-03-23 18:54:33 · 2551 阅读 · 1 评论 -
最新的全球编程语言,操作系统,web服务器等使用率分析报告
由www.w3techs.com 根据alexa排名前100万的网站数据给出的分析报告,并每天持续更新。 1.服务器端编程语言排名http://w3techs.com/technologies/overview/programming_language/all点评:PHP是最高的,说明目前php是主流,但是asp.net也还是有21%的市场份额,看来微软还是有一定影响力的,而java(jsp)只有原创 2012-01-30 11:04:45 · 20174 阅读 · 7 评论 -
Linux下gedit显示行号
Gedit 编辑->视图原创 2011-12-07 16:26:21 · 40258 阅读 · 0 评论 -
进程间通信学习小结(共享内存)
要使用共享内存,应该有如下步骤:1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrm共享内存可以说是最有用的进程间通信方式,也原创 2011-08-31 01:09:33 · 3916 阅读 · 2 评论 -
Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid
perror: #include #include定义函数 void perror(const char *s); perror ("open_port");函数说明 perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出原创 2011-08-30 19:43:52 · 4105 阅读 · 0 评论 -
Linux环境编程--进程通信
实验内容编写程序实现进程的管道通信。用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message!父进程从管道中读出二个来自子进程的原创 2011-08-30 18:55:09 · 9035 阅读 · 0 评论 -
Linux环境编程--多线程
本文作者: 姚继锋 (2001-08-11 09:05:00) 时隔多年 原文地址已经无从查。。。 居然是2001年就写了 今天看来对初学者还是很有参考意义 所以特转给大家本人在原文基础上适当修改1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线原创 2011-08-30 18:42:04 · 3061 阅读 · 2 评论 -
Linux文件,文件描述符以及dup()和dup2()
一.Linux中文件可以分为4种:普通文件、目录文件、链接文件和设备文件。1、普通文件 是用户日常使用最多的文件,包括文本文件、shell脚本、二进制的可执行和各种类型的数据。 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档原创 2012-05-16 13:19:31 · 5219 阅读 · 0 评论 -
epoll使用详解
epoll的工作原理是,你如果想进行IO操作时,先向epoll查询是否可读或可写,如果处于可读或可写状态后,epoll会通过epoll_wait函数通知你,此时你再进行进一步的recv或send操作。epoll仅仅是一个异步事件的通知机制,其本身并不作任何的IO读写操作,它只负责告诉你是不是可以读或可以写了,而具体的读写操作,还要应用层自己来作。epoll仅提供这种机制也是非常好的,它保持了事件通转载 2012-11-06 10:51:35 · 3130 阅读 · 0 评论 -
valgrind massif检查长期闲置堆积导致的内存泄露
memcheck内存泄露是线上很严重也是比较常见的故障,内存泄漏问题,一般可以用memcheck工具来检查。http://valgrind.org/docs/manual/mc-manual.htmlMemcheck是一个内存错误检测器。它可以检测C和C ++程序中常见的以下问题。 访问内存不应该,例如超越和不足堆积块,超出堆栈顶部,并在释放后访问内存。 使用未定义的值...原创 2019-05-02 00:29:09 · 3925 阅读 · 3 评论 -
Java线程怎样映射到操作系统线程
先说多线程模型,参考经典教材《Operating System Concepts , Silberschatz ,9th edition》中文版是《操作系统概念,第9版》https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html一个线程是CPU利用率的基本单元,包括一个程序计数器,堆栈,一组寄存...原创 2019-04-06 22:07:31 · 6002 阅读 · 2 评论 -
高性能IO模型浅析
高性能IO模型浅析 原文地址:https://www.cnblogs.com/fanzhidongyzby/p/4098546.html服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被...转载 2019-02-25 17:10:11 · 706 阅读 · 0 评论 -
Unix/Linux开源世界资源链接汇总【不断更新】
最后更新:2012.12.04说明:好东西在后面,Linux镜像基本涵盖全球主要下载点。【长期更新】世界很大,我们很小,学海无涯,书山有路!一.内核Unix代码大全http://minnie.tuhs.org/UnixV6https://github.com/Rajmohan/UnixV6编程语言开源框架等使用统计网址http://w3techs.c...原创 2019-11-22 09:47:25 · 48137 阅读 · 11 评论 -
FastDFS安装与使用
安装注意要修改:/etc/fdfs/client.confvim /etc/fdfs/client.confbase_path=/home/yuqing/fastdfs 修改为: base_path=/home/fastdfstracker_server=192.168.209.121:22122 修改为: tracker_server=10.201.20.237:22122##include h原创 2013-10-16 14:24:01 · 6899 阅读 · 0 评论 -
Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存
Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存参考:《linux编程从入门到精通》,《Linux C程序设计大全》,《unix环境高级编程》参考:C和指针学习 说明:本文非常的长,也是为了便于查找和比较,所以放在一起了Linux 传统的进程间通信有很多,如各类管道、消息队列、内存共享、信号量等等。但它们都无法介于内核态与用户态使用,原因如表通信方法无法介于内核态与用户态的原因原创 2012-04-19 22:43:28 · 46017 阅读 · 8 评论 -
安装多个gcc
删除gcc#yum remove gcc安装最新的#yum install gcc 查找gcc源可先通过“yum list compat-gcc*”查看版本,然后再利用“yum install compat-gccXXX”安装#yum list compat-gcc*#sudo yum install compat-gcc-34.i686查看gcc版本#gcc -v#gcc34 -v 参考:ht原创 2012-12-07 18:47:08 · 8005 阅读 · 0 评论 -
UNIX环境编程
linux函数分析查询工具1.优先推荐linux 中man命令2.一个不错的中文Linux手册:http://cpp.ezbty.org/manpage3.在线查英文Man手册:http://www.kernel.org/doc/man-pages/http://man7.org/linux/man-pages/dir_all_alphabetic.htmlhttp://linux.about.c原创 2012-11-24 22:45:58 · 10610 阅读 · 0 评论 -
ACCEPT()和ACCEPT4()
ACCEPT章节:Linux 程序员手册 (2)更新:2010-09-10到 易美翻译 翻译名字accept - 通过套接口接受一个连接概要#include Esys/types.h> /* 参看 “注意小节” */#include Esys/socket.h>int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);转载 2012-11-18 16:59:36 · 22305 阅读 · 0 评论 -
linux上使用strace查看C语言级别的php源码【一种方法】
如果你希望看到C语言级别的php代码就需要使用strace这个默认是安装了的,如果没有安装可以#yum install strace 查看httpd进程#ps auxw | grep httpd有多个,必须停止apache [root@localhost usr]# /usr/local/webserver/apache2/bin/apachectl stop 启动单进程httpd[root@lo原创 2012-11-18 00:06:04 · 16300 阅读 · 3 评论 -
Unix下C程序内存泄漏检测工具Valgrind安装与使用
Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。 Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。 Valgrind遵守GNU通用公共许可证条款,是一款自由软件。 官网http://www.valgrind.org 下载与安装#wget http://www.原创 2012-11-11 21:39:40 · 37510 阅读 · 6 评论 -
undefined reference to 'pthread_create'
pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。源文件,不要忘了加上头文件#include在编译中要加 -lpthread参数#gcc test.c -o thread -lpthread#cc test.c -原创 2007-03-22 22:16:00 · 5113 阅读 · 1 评论 -
关于进程间通信的学习心得
进程:进程是指独立地址空间的指令序列进程的五种状态:新建,就绪,运行,睡眠,僵死进程间通信:是不同进程之间进行一些"接触",这种接触有简单,有复杂。机制不同,复杂度也不同。通信是一个广义上的意义,不仅指大批量数据传送,还包括控制信息的传送,但使用方法是基本相同的。基本的进程通信机原创 2011-08-31 01:12:27 · 5036 阅读 · 0 评论 -
Linux环境编程--进程
查看正在运行的进程#ps -ef#ps ax可以看到状态 查看nice值#ps -l#ps -f system函数传递命令,如同在shell中执行char * p="ps ax";system(p); 或者 ="ps ax &";//ps一启动shell就返回 execl,ex原创 2011-08-17 14:57:02 · 1741 阅读 · 0 评论 -
Linux环境编程--fflush(stdout)有什么作用
代码:printf("hello\n");//fflush(stdout);fork();输出:hello 代码:printf("hello\n");fflush(stdout);fork();输出:hellohello 说明:系统函数fork()创建新的进程。原创 2011-08-17 14:19:55 · 7258 阅读 · 0 评论 -
IOCP , kqueue , epoll ... 有多重要?
原文地址:http://blog.codingnow.com/2006/04/iocp_kqueue_epoll.html设计 mmo 服务器,我听过许多老生常谈,说起处理大量连接时, select 是多么低效。我们应该换用 iocp (windows), kqueue(freebsd), 或是 epoll(linux) 。的确,处理大量的连接的读写,select 是够低效的。因为 kernel原创 2007-03-21 20:07:00 · 4822 阅读 · 0 评论 -
服务器端开发经验总结 Linux C语言
简介在进行服务器端开发的时候需要考虑一些算法和性能问题,经过了几年的开发,对这方面有了一些经验,现在写下来跟大家分享和讨论。我主要是在Linux下进行C语言的开发,所以后面的实现都是基于Linux操作系统并用C语言来讲解。其它平台和语言需要考虑的问题是类似的只不过可能是实现细节上有一些差异,我尽量减少这些差异吧。注意一下讲解的所有内容都是基于32位系统的开发!服务器程序开发核心是稳定,在稳定的前提原创 2011-06-28 22:51:00 · 5037 阅读 · 2 评论 -
Linux下C语言的fgets与fputs
使用的是 CentOS gcc编译下面程序 显示warning: the `gets function is dangerous and should not be used.问题出在程序中使用了 gets Linux 下gcc编译器不支持这个函数,解决办法是使用 fgetsfgets()函数的基本用法为: fgets(char * s,int size,FILE * stream); /*原创 2007-03-24 15:24:00 · 5919 阅读 · 0 评论 -
Linux下的AT&T语法(即GNU as 汇编语法)入门
学习这么长时间,一直在C语言这一层面上钻研和打拼,日积月累,很多关于C的疑惑在书本和资料中都难以找到答案。程序员是追求完美的一个种群,其头 脑中哪怕是存在一点点的思维黑洞都会让其坐卧不宁。不久前在itput论坛上偶得《Computer Systems A Programmers Perspective》(以下称CS.APP)这本经典好书,中文有翻译的《深入理解计算机系统》。是遂连原创 2010-01-19 17:35:00 · 15621 阅读 · 15 评论 -
Linux编译器GCC的使用
嵌入式Linux编译器GCC的使用1、GCC概述作为自由软件的旗舰项目,Richard Stallman在十多年前刚开始写作GCC的时候,还只是仅仅把它当作一个C程序语言的编译器,GCC的意思也只是GNU C Compiler而已。经过了这么多年的发展,GCC已经不仅仅能支持C语言,它现在还支持Ada语言、C++语言、Java语言、Objective C语言、PASCAL语言、COBOL语言,并原创 2004-11-04 19:09:00 · 5962 阅读 · 2 评论 -
Fastcgi是什么
一、FastCGI是什么?FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要 行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存 中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等等。 FastCGI的官方站点在http://www.fastc原创 2009-02-02 11:27:00 · 12154 阅读 · 0 评论 -
Linux系统的大小端模式
大端模式 所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 小端模式 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部原创 2007-03-19 19:19:00 · 8969 阅读 · 1 评论 -
Nginx源代码分析 - 日志处理
我看Nginx源代码的时候,感觉整个系统都在传递log指针。log在nginx里是比较关键的。日志和内存分配是最基础的两个起点代码,最好是在自己写的程序框架中早点完善并实现。以免未来要用大量的精力调整。1. 日志的源代码位置日志的源代码在src/code/ngx_log.c及ngx_log.h里。2. 日志的初始化在main()函数一开始,对一些基础数据进行初始化,其中之一就是日志,源代码如下:原创 2011-06-29 00:16:00 · 5439 阅读 · 0 评论