
linux
王伴农
就职于国内某知名互联网企业,网站后端开发
展开
-
gawk详解
【gawk 是 GNU 的 awk,具有很强的文本处理功能,简洁优美。】第一章 前言第二章 简介第三章 读取输入档案第四章 印出第五章 Patterns第六章 算式(Expression)作为Actions的叙述第七章 Actions里面的控制叙述第八章 内建函式(Built-in Functions)第九章 使用者定义的函式第十章 实例 =转载 2014-04-01 10:58:06 · 4200 阅读 · 0 评论 -
ubuntu 下安装source insight
ubuntu 下安装source insight原创 2014-05-02 11:01:11 · 1363 阅读 · 0 评论 -
linux下的进程等待(wait和waitpid)
wait(等待子进程中断或结束)表头文件 #include #include定义函数 pid_t wait (int * status);函数说明: wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。 如果在调用 wait()时子进程已经结束,则 wait()会立即返回子进程结束状态值。 子进程的结束状态值会由参原创 2014-03-17 09:11:26 · 2137 阅读 · 0 评论 -
Linux下execl学习
Linux下头文件#include 函数定义int execl(const char *path, const char *arg, ...);函数说明execl()其中后缀"l"代表list也就是参数列表的意思,第一参数path字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参数须用空指针NULL作结原创 2014-03-17 09:11:15 · 4743 阅读 · 0 评论 -
Linux下的无名管道pipe的设计
1. 函数说明pipe(建立管道):1) 头文件 #include2) 定义函数: int pipe(int filedes[2]);3) 函数说明: pipe()会建立管道,并将文件描述词由参数filedes数组返回。 filedes[0]为管道里的读取端 filedes[1]则为管道的写入端。4) 返回值: 若成原创 2014-03-17 09:10:57 · 1476 阅读 · 0 评论 -
linux下调用库函数实现文件的读写
1. Linux系统调用,文件的描述符使用的是一个整数,库函数访问文件使用FILE类型的指针去指向描述文件;2. 库函数不随系统平台而变,即不管win还是Linux都适用; 库函数 - 读文件size_t fread(void *ptr, size_t size, size_t n, FILE *stream)功能:从stream指向的文件中读取n个字段,每个字段为si原创 2014-03-16 21:21:56 · 1875 阅读 · 0 评论 -
linux下文件的读写操作( open read write)
open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #include#include#include 定义函数 int open( const char * pathname, int flags);int open( const char * pathname,int flags原创 2014-03-16 21:02:55 · 24244 阅读 · 0 评论 -
linux通过C/C++获取本地时间的方法
我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年、月、日、时、分、秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数。linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构struct timeval原创 2014-03-16 20:31:00 · 5297 阅读 · 0 评论 -
Makefile:2: *** 遗漏分隔符 。 停止。
今天写makefile始终显示Makefile:2: *** 遗漏分隔符 。 停止。很无奈,发现写的没有错,没办法,翻书看看,找到原因了!make中规定每一Shell命令之前的开头必须使用字符。因此在g++前面加一个tab就解决啦~原创 2014-03-16 16:03:44 · 3651 阅读 · 0 评论 -
linux下的C++编程
第一步,要安装C++的编译器g++使用如下命令:root@wl-MS-7673:/home/wl/桌面/c++# apt-get install g++第二步,开始我们的hello world使用Vim建立helloworld.cpp,输入如下:root@wl-MS-7673:/home/wl/桌面/c++# cat helloworld.cpp #inclu原创 2014-03-16 15:59:20 · 4495 阅读 · 0 评论 -
【shell脚本学习】$*与$@
$*与$@变量都提供了对所有参数的快速访问,这两个都能够在单个变量中存储所有的命令行参数。$*变量会将命令行上提供的所有参数当作单个单词保存,其会被当作单个参数,而不是多个对象。$@变量会将命令行上提供的所有参数当作同意个字符串中的多个独立的单词。他允许遍历所有的值,将提供的每个参数分割开来。这通常通过for命令完成。下面看一个例子就明白啦~root@wl-MS-7673:/hom原创 2014-03-10 14:12:23 · 1918 阅读 · 0 评论 -
[shell脚本学习]处理用户输入
当脚本需要与运行脚本的人员进行交互。bash shell提供了命令行参数(添加在命令后面的数据值)、命令行选项(修改命令行为的单字符值)和直接读取键盘输入。1、命令行参数向shell脚本传递数据的最基本方式是使用命令行参数。(1)读取参数 读取输入的参数的变量为位置参数,位置参数通过标准数字表示, 其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直原创 2014-03-10 13:35:32 · 2003 阅读 · 0 评论 -
【Linux】生产者消费者编程实现-线程池+信号量
生产者消费者编程实现,采用了线程池以及信号量技术。线程的概念就不多说,首先说一下多线程的好处:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 那么为什么又需要线程池呢? 我们知道应用程序创建一个对象,然后销毁对象是很耗费资源的。创建线程,销毁线程,也是如此。因此,我们就预先生成一些线程,等到我们使转载 2014-03-10 13:29:27 · 897 阅读 · 0 评论 -
grep
1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(只适用于原创 2014-03-10 13:08:57 · 835 阅读 · 0 评论 -
unix网络编程第三版源码ubuntu下配置的问题解决
unix网络编程第三版源码ubuntu下配置的问题解决原创 2014-04-18 14:20:11 · 2220 阅读 · 0 评论 -
linux下getsockopt和setsockopt详解及测试
linux下getsockopt和setsockopt详解及测试原创 2014-04-19 13:53:47 · 7482 阅读 · 1 评论 -
linux常见面试题答案
1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。3. Linux文件系统中每个文件用i字节来标识。4. 全部磁盘块由四个部分组成,分别为引导块、i字节表块、专用块、数据储存块。5. 链接分为: 硬链接 和 符号链接 。6. 超级块包含了i字节表 和 空闲块表 等重要的文件系统信息。7. 某文件转载 2014-04-03 19:05:20 · 2343 阅读 · 0 评论 -
Linux下线程同步机制
Linux下线程同步机制原创 2014-04-11 19:43:07 · 1793 阅读 · 0 评论 -
undefined reference to `pthread_join'解决办法
问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。问题解决: 在编译中要加 -lpthread参数 gcc thread.c -o thread -lpthread原创 2014-04-12 18:51:42 · 11897 阅读 · 0 评论 -
GDB命令使用详解
GDB命令使用详解原创 2014-04-12 18:14:03 · 3246 阅读 · 0 评论 -
Ubuntu下vim插件的在线安装
Ubuntu下vim插件的在线安装原创 2014-04-13 00:21:28 · 2206 阅读 · 0 评论 -
UNIX环境高级编程Ubuntu下的一个小BUG
UNIX环境高级编程Ubuntu下的一个小BUG原创 2014-04-12 16:35:52 · 1088 阅读 · 2 评论 -
Linux内核哈希表分析与应用
Linux内核哈希表分析与应用Author:tiger-johnTime:2012-12-20mail:jibo.tiger@gmail.comBlog:http://blog.youkuaiyun.com/tigerjb/article/details/8450995转载请注明出处。前言:1.基本概念:散列表(Hash table,也叫哈希表),是转载 2014-04-11 20:18:33 · 692 阅读 · 0 评论 -
setsockopt 设置socket
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,转载 2014-04-25 21:03:25 · 933 阅读 · 0 评论 -
《UNIX环境高级编程》第二版源码在Ubuntu下的编译
《UNIX环境高级编程》第二版源码在Ubuntu下的编译原创 2014-05-08 19:42:32 · 2407 阅读 · 0 评论 -
linux下echo详解
首先熟悉一下echo命令名称 echo - 显示一行文本概要 echo [选项]... [字符串]...描述 向标准输出输出字符串。 -n 不输出换行符 -e 打开反斜杠ESC转义 -E 取消反斜杠ESC转义 (默认)原创 2014-04-08 21:36:32 · 870 阅读 · 0 评论 -
Linux中expr命令 (转)
expr 命令用途求表达式变量的值。语法expr Expression描述expr 命令读入Expression 参数,计算它的值,然后将结果写入到标准输出。您必须对 Expression 参数应用以下规则:用空格隔开每个项。用 / (反斜杠) 放在 shell 特定的字符前面。对包含空格和其他特殊字符的字符串要用引号括起来。转载 2014-04-08 22:24:24 · 999 阅读 · 0 评论 -
100个常用Linux命令
1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2,chmod go+w -R /home/zhangy //给组用户和其他用户添加写的权限 3,tar -tzvf test.tar.gz //列出归档内容 4,du -ah //查看文件列表大小 5,d转载 2014-04-03 19:31:30 · 722 阅读 · 0 评论 -
linux 下的select函数
linux 下的select函数原创 2014-04-19 10:48:15 · 1990 阅读 · 0 评论 -
linux下管道命令|
想必很多刚接触linux尤其是在redhat环境下,大家都见过 rpm -qa | grep 或者rpm - qa| sort之类的命令,但是并不知道|是一个什么符号。管道符号,是unix功能强大的一个地方,符号是一条竖线:"|",用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2:例原创 2014-03-10 12:59:28 · 942 阅读 · 0 评论 -
ubuntu下常用命令
一、文件目录类 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~;进入上一级目录:cd -) 5.查看自己所在目录:pwd 6.查看当前目录大小:du 7.显示目录文件列表:ls -l (-a:增加显示隐含目录) 其中:原创 2014-03-10 12:47:41 · 845 阅读 · 0 评论 -
shell脚本菜单的创建
创建文本菜单创建菜单布局root@wl-MS-7673:/home/wl/桌面/shell# cat -n test1.sh 1 #!/bin/bash 2 echo -e "\t\tMenu" 3 echo -e "1.\tDisplay disk space" 4 echo -e "2.\tD原创 2013-11-25 17:51:43 · 3780 阅读 · 0 评论 -
linux下采用trap对信号进行捕捉
在Linux中,trap命令主要用于接收信号并采取行动,信号是异步发送到一个程序的事件,在默认情况下,可以终止一个程序,trap命令原型如下:trap command signalsignal是指接收到的信号,command是接收到该信号采取的行动。如下为两种简单的信号。信号说明INT(2)Ctrl + CQUIT(3)Ctr原创 2013-11-25 13:17:16 · 1093 阅读 · 0 评论 -
使用for循环来遍历某个路径下的文件及文件夹
一个很简单的例子,遍历路径下的所有目录,查看它是目录通过参数-d 还是文件通过参数-f,代码如下:原创 2013-11-23 20:56:18 · 5511 阅读 · 0 评论 -
字段分隔符IFS
IFS(Internal Field Seperator)在Linux的shell中预设的分隔符,用来把command line分解成word(字段)。IFS可以是White Space(空白键)、Tab( 表格键)、Enter( 回车键)中的一个或几个。IFS是shell脚本中的一个重要概念,在处理文本数据时,它是相当有用的。内部字段分隔符是用于特定用途的定界符。IFS是存储定界符的原创 2013-11-23 20:31:45 · 2429 阅读 · 2 评论 -
linux下的gedit和Vi使用
1. gedit1、启动: 从菜单启动:应用程序——>附件——>文本编辑器 从命令行执行以下命令: gedit 2、窗口说明: 菜单栏:包含您在 gedit 中处理文件所需的所有命令。 工具栏:包含您可以从菜单栏访问的命令的子集。 显示区域:该区域包含您正在编辑的文件的文本。 输出窗口:显示 Shell 命令插件和比较文件插件返回的输出。 状态栏原创 2013-11-21 20:43:55 · 46311 阅读 · 0 评论 -
linux常见面试题
1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。3. Linux文件系统中每个文件用i字节来标识。4. 全部磁盘块由四个部分组成,分别为引导块、i字节表块、专用块、数据储存块。5. 链接分为: 硬链接 和 符号链接 。6. 超级块包含了i字节表 和 空闲块表 等重要的文件系统信转载 2013-11-04 20:32:49 · 1279 阅读 · 0 评论 -
remap_pfn_range使用详解
remap_pfn_range和io_remap_pfn_range负责为一段物理地址建立新的页表,他们的原型如下 int remap_pfn_range(struct vm_area_struct *vma, unsigned long virt_addr, unsigned long pfn, unsigned long size, pgprot_t prot); i原创 2013-09-29 15:01:30 · 12389 阅读 · 2 评论 -
fork与vfork的区别
Fork()使用fork()就要包含和两个库;函数的形式是:pid_t fork(void);调用成功时返回两次,如果是在父进程中,返回子进程的进程号,如果在子进程中,返回0;失败时返回值为-1。在调用fork函数后,fork调用点产生与父进程相同的子进程,也就是说,fork函数后的代码是被父进程和子进程分别执行的。Vfork()Vfork系统调用函数与fork()调用比较类似原创 2013-10-25 11:32:45 · 1061 阅读 · 0 评论 -
linux下管道通信
什么是管道? 管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据。管道的分类 管道包括无名管道和命名管道两种,前者用于父进程和子进程间的通信,后者可用于运行于同一系统中的任意两个进程间的通信。无名管道的创建 无名管道由pipe原创 2013-10-25 08:44:24 · 1087 阅读 · 0 评论