linux编程
文章平均质量分 80
一直在路上25
热爱技术,坚持才是硬道理
展开
-
linux指令
Linux删除文件夹命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 删除目录、文件 rm(remove)功能说明:删除文件或目录。语 法:rm [-dfirv][--help][--version][文件或原创 2014-03-01 19:56:33 · 687 阅读 · 0 评论 -
读Unix网络编程笔记
一开始调用socket,这要求定义插口类型。I原创 2014-04-15 14:40:04 · 564 阅读 · 0 评论 -
boost asio学习
几天发布了1.51版本,更新内容请查看:http://www.boost.org/users/history/version_1_51_0.html,asio修改如下内容:Asio:Fixed an incompatibility between ip::tcp::iostream and C++11 (#7162).Decorated GCC attribut转载 2014-03-21 11:52:21 · 869 阅读 · 0 评论 -
网络编程阻塞模式与非阻塞模式
在套接字创建时,默认工作在阻塞模式下,例如对Recv函数的调用会使程序进入等待状态,直到接收到数据才返回。大多数WinSock程序设计中都是从阻塞套接字模式开始学习的。因为这事最容易和最直接的方式。处理阻塞模式套接字的应用程序使用的程序框架便是阻塞模型。阻塞套接字的好处是使用简单。但是当需要处理多个套接字连接时,就必须创建多个线程。即典型的一个连接使用一个线程的问题。这给编程带来了许多不便,所以实原创 2014-03-06 14:35:50 · 1521 阅读 · 0 评论 -
GCC的简单指令
GCC [OPTION] [FILENAME]GCC主要经过原创 2014-04-19 19:37:49 · 777 阅读 · 0 评论 -
可伸缩服务器系统
CIOCPServer类使用了现金的IOCP技术,它可以非常高效的为大量客户提供服务。 CIOCPServer类接收到用户的启动命令之后,首先创建监听线程,再由监听线程创建工作线程。服务器启动期间,监听线程一直运行,为I/o工作线程提供服务。#define BUFFER_SIZE 1024*4 //I/OQ请求的缓冲区大小#define MAX_THREAD 2 //I/原创 2014-03-08 15:47:13 · 701 阅读 · 0 评论 -
linux工程项目
linux下如何编译c++工程项目(2010-03-31 14:49:46)转载▼标签:杂谈分类:编程技术熟悉了Windows平台下编译一个C++工程后,你是否会提出这样一个问题:在Linux平台下又如何编译一个C++工程呢?希望本文能给正在学习或想学习Linux C++开发的你起到抛砖引玉的作用。首先,你必须有一个L原创 2014-03-01 20:52:04 · 995 阅读 · 0 评论 -
fork()函数
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。转载 2014-03-07 21:40:16 · 574 阅读 · 0 评论 -
GraphicsMagick 安装
wget http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.18/GraphicsMagick-1.3.18.tar.gz/download #获取tar包# 安装辅助环境yum install freetypeyum install gd-devel yum install libgom原创 2014-04-11 08:45:50 · 909 阅读 · 0 评论 -
nginx安装
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm #获取rpm包 rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm yum install nginx service ngi原创 2014-04-11 08:46:33 · 813 阅读 · 0 评论 -
FTP安装
rpm -q vsftpd # 查看是否已经安装额vsfptd yum install vsftpd # 安装 vi /etc/vsftpd/user_list # 然后注释掉 root vi /etc/vsftpd/ftpusers # 然后注释掉 root setsebool -P ftpd_disable_trans=1 #避免ftp出现500 OOPS:原创 2014-04-11 08:47:24 · 716 阅读 · 0 评论 -
mysql主从
主的安装 yum -y install mysql-servervim /etc/my.cnf[mysqld]character-set-server=utf8 #默认编码 utf8[mysql]default-character-set=utf8#mysql 开机自己启动的设置chkconfig --list mysqldchkconfig mysqld原创 2014-04-11 08:47:00 · 476 阅读 · 0 评论 -
memcache安装
#更新镜像 yum install yum-fastestmirror#64位:wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm#32位 wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-原创 2014-04-11 08:46:04 · 558 阅读 · 0 评论 -
JDK安装
sudo rpm -ivh /目录/jdk-7-linux-x64.rpm vim /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_40export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexpo原创 2014-04-11 08:47:12 · 483 阅读 · 0 评论 -
NFS安装
Nfs 服务器安装yum install yum-fastestmirror 获取最新的镜像yum install nfs-utils rpcbind 安装nfs服务 以及 rpcbind 用于实现rpc端口绑定mkdir /opt/centos6cd /opt/centos6/ 创建文件共享目录 并且进入该目录mkdir /sharecat /etc/exports原创 2014-04-11 08:46:48 · 644 阅读 · 0 评论 -
虚拟机网络初始化
# 1删除之前的网络设置 重启rm /etc/udev/rules.d/70-persistent-net.rulesreboot#2 虚拟机设置成桥接vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0TYPE=EthernetONBOOT=yesBOOTPROTO=staticIPADDR=1原创 2014-04-11 08:46:17 · 2184 阅读 · 0 评论 -
linux系统目录基础结构
1、经典树形目录 linux系统设计中最优秀的特性之一就是将所有内容都以文件的形式表示出来,通过一个树形结构统一管理和组织这些文件。整个文件系统有个根root,然后再整个根上分出很多叉。 (1)/etc目录 这个目录主要用于存放系统管理相关的配置文件以及子目录,其中比较重要的有系统初始化文件/etc/rc、用户信息文件/etc/passwd、相关网络配置文件和服务原创 2014-05-30 17:54:48 · 930 阅读 · 0 评论 -
wget命令
最后用了 wget -c -r -np ftp://name:pw@server/dir/ 实现从先前虚拟主机ftp上转移某目录下所有文件到新VPS上。所用参数 -c 断点续传(备注:使用断点续传要求服务器支持断点续传),-r 递归下载(目录下的所有文件,包括子目录),-np 递归下载不搜索上层目录 参考:wget是linux下命令行的下载工具,功能很强大转载 2014-08-28 09:26:54 · 673 阅读 · 0 评论 -
Winsock库
为了在应用程序当中调用任何一个Winsock API函数[1],首先第一件事情就是必须通过WSAStartup函数完成对Winsock服务的初始化,因此需要调用WSAStartup函数。使用Socket的程序在使用Socket之前必须调用WSAStartup函数。该函数的第一个参数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Soc原创 2014-03-07 16:27:22 · 1820 阅读 · 0 评论 -
完成端口I/O模型
当应用程序必须一次管理多个套接字的时候,完成端口模型提供了最好的系统性能。这个模型也提供了最好的伸缩性,它非常适合用来处理上百、上千个套接字。IOCP广泛应用于各种类型的高性能服务器,如Apach等。1 什么是完成端口对象 I/O完成端口是应用程序使用线程池处理异步I/O请求的一种机制。处理多个并发异步I/O请求时,使用I/O完成端口比在I/O请求时创建线程更快更有效。 I/原创 2014-03-08 09:41:27 · 1207 阅读 · 0 评论 -
Critical_section结构
临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。临界区:简述如果您非常熟悉临界区,并可以不假思索地进行应用,那就可以略过本节。否则,请向下阅读,以对这些内容进行快速回顾。如果您不熟悉这些基础内容,则本节之后的内容就没有太大意义。原创 2014-03-07 21:23:47 · 1817 阅读 · 0 评论 -
vm共享到windows
vmvare如何共享xp下的文件夹(2009-05-13 20:52:27)转载▼标签:杂谈分类:说的是在虚拟机下来实现在windows下共享一个文件(2008-10-28 08:12:49)标签:it 这里说的是在虚拟机下来实现在windows下共享一个文件夹。下面来说明一下是如何实现的:1. 安转载 2014-03-01 20:59:10 · 539 阅读 · 0 评论 -
linux makefile学习笔记(2)
三、make是如何工作的在默认的方式下,也就是我们只输入make命令。那么,1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时转载 2014-03-02 20:08:45 · 555 阅读 · 0 评论 -
linux makefile学习笔记(4)
一、显示命令通常,make会把其要执行的命令行在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来,最具代表性的例子是,我们用这个功能来像屏幕显示一些信息。如:@echo 正在编译XXX模块......当make执行时,会输出“正在编译XXX模块......”字串,但不会输出命令,如果没有“@”,那么,make将输出:echo转载 2014-03-02 20:52:10 · 599 阅读 · 0 评论 -
linux makefile学习笔记(5)
使用变量————在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是Makefile的其它部分中。变量的命名字可以包含字符、数字,下划线(可以转载 2014-03-02 21:12:08 · 546 阅读 · 0 评论 -
linux makefile学习笔记(1)
记下这篇文章,方便自己学习,来日温故知新!多数是自己在网上找的资料: 关于程序的编译和链接——————————在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Obje转载 2014-03-02 19:57:01 · 596 阅读 · 0 评论 -
linux makefile学习笔记(4)
六、多目标Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的可以使用一个自动化变量“$@”(关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。转载 2014-03-02 20:44:52 · 613 阅读 · 0 评论 -
IP协议
7.1 网络传输分层 如果你考过计算机等级考试,那么你就应该已经知道了网络传输分层这个概念.在网络上,人们为了传输数据时的方便,把网络的传输分为7个层次.分别是:应用层,表示层,会话层,传输层,网络层,数据链路层和物理层.分好了层以后,传输数据时,上一层如果要数据的话,就可以直接向下一层要了,而不必要管数据传输的细节.下一层也只向它的上一层提供数据,而不要去管其它东西了.如果你不想考试,原创 2014-03-06 19:59:38 · 584 阅读 · 0 评论 -
WSAAsyncSelect模型
WSAAsyncSelect模型允许应用程序以Windows消息的形式接收网络事件的通知,这个模型是为了适应Windows的消息驱动环境而设置的,现在许多对性能要求不高的应用程序都采用WSAAsyncSelect模型,MFC中的CSocket类也使用了这种模型。1 消息通知和WSAAsyncSelect函数 WSAAsyncSelect函数自动把套接字设为非阻塞模式原创 2014-03-06 21:05:46 · 678 阅读 · 0 评论 -
linux网络编程书籍
首先要说讲述计算机网络和TCP/IP的书很多。 先要学习网络知识才谈得上编程讲述计算机网络的最经典的当属Andrew S.Tanenbaum的《计算机网络》第五版,这本书难易适中。《计算机网络(第5版)》是国内外使用最广泛、最权威的计算机网络经典教材。目前已经是第五版,本书作者80年代就开发出MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。而linux就是受其影转载 2014-03-06 12:28:43 · 620 阅读 · 0 评论 -
基于WSAEventSelect模型的服务器设计
它使用了线程池,可以处理大量的客户I/O请求。设计总体思路比较简单,程序的主线程负责监听客户端的连接请求,接受到新连接后,将新套接字安排给工作线程处理I/O.每个工作线程最多处理64个套接字,如果再有新的套接字,就在创建新的工作线程。原创 2014-03-05 11:06:12 · 1183 阅读 · 0 评论 -
GCC的使用
gcc后可以直接接文件的文件名。如果不喜欢这个文件名,可以接-o filename。-c 命令行中指定的源代码文件编译和连接,创建一个目标文件。-wall 打开通用的警告信息。这里介绍GCC追常用的两种模式:编译模式和编译连接模式。下面以一个例子来说明各种模式的使用方法。为简单起见,假设我们全部的源代码都在一个文件test.c中,要想把这个源文件直接编译成可执行程序原创 2014-03-06 18:55:05 · 791 阅读 · 0 评论 -
linux文件的读写操作
计算机由软件与硬件组成。对硬件进行扩充实现功能就得安装软件,原创 2014-03-13 16:59:38 · 1122 阅读 · 0 评论 -
重叠(Overlapped)I/O模型
与介绍过的其他模型相比,重叠I/O模型提供了更好的系统性能。这个模型的基本设计思想是允许应用程序使用重叠数据结构一次投递一个或者多个异步I/O请求(即所谓的重叠I/O)。提交的I/O请求完成之后,与之关联的重叠数据结构中的事件对象受信,应用程序便可使用WSAGetOverlappedResult函数获取重叠操作结果。这和使用重叠结构调用ReadFile和WriteFile函数操作文件类似。原创 2014-03-07 15:39:24 · 2066 阅读 · 0 评论 -
套接字间通信的两个函数
sendto FunctionThe sendto function sends data to a specific destination.int sendto( __in SOCKET s, __in const char* buf, __in int len, __in int flags,原创 2014-03-07 19:10:42 · 592 阅读 · 0 评论 -
写代码规范
将所需要经常引用的头文件并在一个head.h中:#ifndef __HEAD_H__#define __HEAD_H__#ifdef WIN32 #include #include#else #include #include #include #include #include #i原创 2014-03-07 20:13:38 · 577 阅读 · 0 评论 -
网络程序中经常用到的几个函数
Sets buffers to a specified character.ParametersdestPointer to destination.cCharacter to set.countNumber of characters.ParametersdestPointer to destination.cChara原创 2014-03-07 19:57:41 · 560 阅读 · 0 评论 -
makefile学习
main: main.o add.o sub.o gcc -WALL -g main.o add.o sub.o -o mainmain.o : main.c gcc -WALL -g -c main.c -o main.oadd.o:add.c add.h gcc -WALL -g -c add.c -o add.osub.o:su原创 2014-03-08 20:49:22 · 608 阅读 · 0 评论 -
客户端、服务器端编程
首先是从main函数开发:int main(itn argc,char* argv[]){pthread_t thread;int count;int status; client_threads = CLIENT_THREADS;for(count = 0;count {status = pthread_create(&thread,NU原创 2014-10-21 20:39:20 · 762 阅读 · 0 评论