
linux
文章平均质量分 77
松阳
我在路上走着,遇到了你,大家点头微笑,结伴一程
缘深缘浅,缘聚缘散,该分手时分手,该重逢时重逢
惜缘即可,不必攀缘
同路人而已
能不远不近地彼此陪伴着,不是已经很好了吗?
展开
-
通过patch实现生成使用补丁
一、原理 diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。 patch能将diff文件运用于 原来的两个集合之一,从而得到另一个集合。 举个例子来说文件A和文件B,经过diff之后生成了原创 2011-08-30 13:45:56 · 2467 阅读 · 0 评论 -
Linux进程间通信(二)——共享内存、消息队列
一、共享内存 最高效的进程间通信机制。多个进程共享一段内存。需要依靠某种同步机制,如互斥锁或信号量。 通常步骤为:创建 -> 映射 -> 使用 -> 撤销映射 ->删除原创 2011-10-12 20:01:23 · 2710 阅读 · 0 评论 -
linux进程知识 程序存储、crontab、fork与vfork、exec、_exit()、wait()与waitpid()、孤儿和僵尸
一、程序存储 经常被问到进程与线程的区别,今天有人问程序与进程的区别,一下子还真没反应过来 。程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。反原创 2011-10-09 21:22:11 · 2753 阅读 · 0 评论 -
linux多线程(二)
一、多线程的创建和启动 一个多线程的程序是通过先创建后启用的方式运行起来的。可以在创建的时候传递参数,也可以在结束的时候返回参数。注意当第二个进程sleep时,第一个线程也在运行。当线程退出时,才继续向下运行主程序。上一个线程未退出,是不会向下执行原创 2011-10-18 20:26:52 · 1949 阅读 · 0 评论 -
linux多进程——进程组与会话、守护进程、信号通信
一、进程组与会话 进程组:是一个或多个进程的集合。可以调用 getpgid(0) 或 getpgrp() 来得到。进程组ID为组长的进程ID。只要进程组中有一个进程存在,进程组就存在,与组长进程是否终止无关。调用 setpgid() 加入一个现有的进程组或创建一个新原创 2011-10-10 19:20:44 · 5630 阅读 · 0 评论 -
Linux 网络编程——TCP
一、TCP通信步骤TCP服务器部分:1、调用函数socket(),创建一个socket2、设置sockaddr_in信息,如要连接服务器的IP和端口等属性3、调用函数bind(),绑定IP地址、端口等信息到socket上4、调用函数listen(),设置允许的最大连接数5、调用函数accept(),等待来自客户端的连接请求6、调用函数send() 和 recv(原创 2011-09-15 19:46:13 · 2572 阅读 · 1 评论 -
linux文件读写 文件锁、select、poll
一、文件锁 文件锁用于多个用户共同使用或操作同一个文件。有读锁的时候可以再加读锁,不能再加写锁。有写锁的时候,不能加任何锁,加读锁时,该描述符必须是读打开,加写锁时,该描述符必须是写打开,且只在进程间有用。 重写的上锁方法//lock.cint lock_set(int fd,int type){ struct flock lock;原创 2011-10-08 21:29:20 · 6955 阅读 · 0 评论 -
Linux网络通信(二)Socket编写TCP/UDP
一、通信流程 TCP: UDP: 部分函数知识可以参考之前写的 Linux 网络编程——TCP TCP通信: 客户端:#include#include#include#include#include#include#define PORT 8888int main(int argc,c原创 2011-10-22 20:52:25 · 8291 阅读 · 0 评论 -
通过VMware 在windowXP上安装Fedora15
1、 先上网下个VMware ,我用的是7.1.4 。 2、上网下个Fedora15 我在 这里下载的,点击链接 我选的是倒数第2个,网易的i386的那个,3.39G下载速度还是挺快的。 3、安装VMware,这个就不用多说了吧.... 序列号上网找一个先用,然后重启机器。 4、启动VMware,点选第一个图标:new Virtual Machine -> next -原创 2011-08-15 16:47:01 · 3548 阅读 · 0 评论 -
shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
1、expr计算整数变量值格式 :expr arg 例子:计算(2+3)×4的值1、分步计算,即先计算2+3,再对其和乘4s=`expr 2 + 3`expr $s \* 42、一步完成计算:expr `expr 2 + 3 ` \* 4 –说明: 运算符号和参数之间要有空格分开; 通配符号(*),在作为乘法运算符时要用\、“”、‘’符号修饰原创 2011-08-27 13:15:21 · 41216 阅读 · 0 评论 -
Linux网络编程(三) IO非阻塞操作
IO非阻塞操作 sock的方法不一定非得是阻塞的,也可以非阻塞的操作。有两种方法分别为设置fcntl 和设置相应函数的参数。 服务端:#include #include #include #include #include #include #include #include #define BUFSIZE 128原创 2011-10-23 18:42:17 · 4345 阅读 · 0 评论 -
linux网络编程基础(一)
一、数据存储顺序:大端和小端 高位字节存储高字节称为小端模式,通常都计算机采用这个模式存储。而网络则采用大端传输。所以需要转换 面试有时会出这么个题:写一个程序判断程序的存储是大端还是小端? 程序的原理见下图: #include#includeunion word{ int a; ch原创 2011-10-21 21:11:04 · 5630 阅读 · 2 评论 -
Linux网络编程(四) select多路复用
TCP虽然可以实现 IO非阻塞操作,但在实际应用时会对资源是否准备完毕进行循环测试,增加了不必要的CPU占用。 为了解决这种问题,应用多路复用的知识,select()监听信号。相关知识可以参考 linux文件读写 文件锁 select poll 。 服务端: #include #include #include #include原创 2011-10-24 18:21:22 · 4216 阅读 · 1 评论 -
UDP 聊天室
学过Socket编程,连个UDP聊天室也没写过实在是说不过去了。写个简单的聊天室。客户端通过向服务器发送数据进行对话。所有信息在服务端显示。 运行效果: 服务端:[fsy@localhost my_socket]$ ./udpscreate socket.bind address to socket.fsy said: i'm coming~saosa原创 2011-11-02 21:30:56 · 4763 阅读 · 5 评论 -
Mac Yosemite 配置Apache
今天在 Yosemite 配置Apache时遇到些问题 写篇博客记录一下原创 2015-02-03 14:26:48 · 9395 阅读 · 0 评论 -
Linux消息队列
一、概念 消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向中按照一定的规则添加新消息;有读权限的进程则可以读走消息。读走就没有了。消息队列是随内核持续的。 只有内核重启或人工删除时,该消息才会被删除。在系原创 2011-09-13 16:21:28 · 2950 阅读 · 0 评论 -
Linux进程间通信(一)——管道、信号量
一、Linux进程间通信方式 :有六种方式在两个程序间传递信息 1、信号( Singal ) 2、管道 ( Pipe ) 及有名管道 3、信号量 ( Semaphore ) 4、共享内存 ( Share原创 2011-10-12 19:13:31 · 4448 阅读 · 1 评论 -
进程控制
1、进程调用的头文件为。2、pid_t getpid() 获取本进程ID。pid_t getppid()获取父进程ID。 3、fork()返回值:在父进程中,返回新创建的子进程的PID在子进程中,返回0出现错误,返回负值4、原创 2011-09-08 20:34:51 · 1247 阅读 · 0 评论 -
Linux 信号通信
一、信号 信号(signal)机制是Unix进程间通信的一种机制。很多条件可以产生信号。 进程可以用kill 函数将信号发送给另一个进程,用户可以用kill命令发送信号。 信号有三种处理方式:1、忽略信号。通常情况下都按这种方式进行处理,但SIGKI原创 2011-09-10 15:19:54 · 1850 阅读 · 0 评论 -
Linux 管道通信
一、定义 管道是单向的、先进先出的。它将一个程序的输入和另一个程序的输出连接起来。数据被一个进程读出后,将被从管道中删除。分为无名和有名管道两种。前者用于父进程和子进程间的通信,后者用于同一系统的两个进程间通信。 二、无名管道 int pi原创 2011-09-09 21:04:07 · 6983 阅读 · 1 评论 -
Linux 共享内存
一、概念共享内存是被多个进程共享的一部分物理内存,是进程间共享数据的最快的一种方法。 二、实现分为两个步骤:1、创建共享内存。2、映射共享内存。1、创建 int shmget(key_t key, int size, in原创 2011-09-10 19:02:59 · 1722 阅读 · 0 评论 -
如何使用gdb调试多进程 (attach方法)
[测试程序]我们先看看我们的测试程序:/* in eg1.c */int wib(int no1, int no2){ int result, diff; diff = no1 - no2; result转载 2011-09-13 15:11:27 · 16625 阅读 · 0 评论 -
Fedora的一些基本设置
#1,设置sudo,提权在Ubuntu或其他发行版本下用惯sudo,我们可以通过下面方式来实现sudo。在命令行下输入# su# visudo然后,在配置文件中找到下面的几行内容:## Allow root to run any com原创 2011-08-16 10:24:25 · 2208 阅读 · 0 评论 -
ln 命令用法 hard link 与 symbolic link 区别 分析
Hard Link (实体链接, 硬式连接) 首先要知道inode。它就像一个指向档案的指针,档案的内容由inode的记录来指向。所以读取一个档案内容可以有多个文件名对应一个文件的inode号码,这就是hard link。 举个例子来说,假如我系统有个 /r原创 2011-08-17 20:30:36 · 7529 阅读 · 0 评论 -
Linux 添加用户 ,帐号管理 ,群组管理 详解
一、 单个账户管理 先说说账号的组成。每一个帐户都有拥有人和拥有组群两个属性,所以每个登陆的使用者至少有两个ID,即UID(User ID)和GID(Group ID)。所有用户的ID都存放在/etc/passwd 中 例如 fsy:x:50原创 2011-08-18 21:19:43 · 13362 阅读 · 1 评论 -
Linux 多线程学习
一、多线程 VS 多进程 和进程相比,线程有很多优势。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护代码段和数据。而运行于一个进程中的多个线程,他们之间使用相同的地址空间。正是这样,同一进程下的线程之间共享数据空间,数据可以原创 2011-09-14 20:44:05 · 1840 阅读 · 1 评论 -
linux下 配置VSFTP 实现 Fedora与windows互访
1、安装 。终端输入 #yum -y install vsftpd 2、配置vsftpd.conf文件 #cd /etc/vsftpd/[root@localhost vsftpd]# vi vsftpd.conf 3、在vi中添加以原创 2011-08-18 13:17:27 · 3178 阅读 · 0 评论 -
linux 指令熟悉
1、date 显示日期时间2、cal 显示日历 eg: cal 12 20123、按[TAB]可进行自动补全代码,按两次显示相似命令集4、命令后面加上 --help可查询中文帮助,man 加上命令 可查询英文文档,按q退出。5、ctrl+shift+alt+原创 2011-08-16 14:33:46 · 1369 阅读 · 0 评论 -
cpio命令用法
cpio命令 利用cpio 可将文件或目录从文件库获取出来或将散列文件拷贝到文件库。cpio 的指令格式: cpio –i[bcdmrtuv] [patterns] cpio –o [abcv] cpio –转载 2011-08-29 10:56:31 · 2564 阅读 · 0 评论 -
gcc、gdb、makefile 学习和用法
一、gcc1、gcc通过后缀来区别文件类型: .c为C语言源文件;.C、.cc或.cxx为C++源文件;.h为头文件 .o为编译后的目标文件;.s为汇编语言源文件;.i为C语言预处理文件2、编译选项: -o filename 编译后输出文件名为fil原创 2011-08-29 19:38:27 · 2909 阅读 · 0 评论 -
shell编程:引用变量、内部变量、条件测试、字符串比较、整数比较、文件比较、逻辑操作、引号、通配符、调试执行
1、env显示当前的环境变量 2、PS1='[\u@\h \w \A] \$' 可以设置bash的命令与提示符。3、echo $$ 显示当前bash的PID号4、echo $?显示上一条指令的回传值(指令成功回传值为0,其他为非零)5、unset name原创 2011-08-26 21:03:00 · 9398 阅读 · 0 评论 -
系统调用的方式访问文件
1、创建文件 int create(const char* filename , mode_t mode) 创建文件。filename为文件路径,mode为文件权限,如:S_IRUSR 可读;S_IRWXU 可读、可写、可执行。也可以用数字表示,如:0755。原创 2011-09-08 21:06:20 · 1530 阅读 · 0 评论 -
Shell 常用命令
本文中记录了一些基础的 shell 命令,例如 获取参数、 $、 内置变量。以及一些操作,例如 读取配置、更改配置、写入文件 、重定向、软连接 。以及一些常用的逻辑:条件测试、echo、字符串比较、函数 、搜索匹配。还有使用 grep、sed、#!/bin/bash 等命令的简要说明。原创 2015-01-04 22:27:52 · 2392 阅读 · 0 评论