linux
sunmenggmail
这个作者很懒,什么都没留下…
展开
-
linux的文件属性和权限学习——分析ls命令结果
转自: http://blog.csdn.net/daheiantian/article/details/5974962最近阅读《鸟哥的linux私房菜》,确实是一本好书,使自己在文件属性和权限方面有了较深的理解,总结如下。(注:本篇博文的图片来自于《鸟哥的linux私房菜》一书)一、提纲本篇博文主要包含以下几个部分:1. 用户和用户组的概念;转载 2012-05-12 09:24:24 · 682 阅读 · 0 评论 -
Linux进程间通信——管道
转自:http://www.cnblogs.com/feisky/archive/2010/03/24/1693484.htmlLinux进程间通信机制:1.同一主机进程间通信机制: Unix方式:有名管道FIFO、无名管道PIPE、信号Signal SystemV方式:信号量、消息队列、共享内存2.网络通信:RPC(Remote Procedu转载 2012-05-13 20:44:07 · 855 阅读 · 0 评论 -
Linux进程间通讯之消息队列
首先有个大体的概念:http://www.xefan.com/archives/83703.html头文件: #include #include #include 函数: key_t ftok(const char *filename, int proj_id);通过文件名和项目号获得System V IPC键值(用于创建消息队列、共享内存所用)proj_id:转载 2012-05-13 22:21:51 · 3498 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞
转自:http://blog.csdn.net/historyasamirror/article/details/5778378同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronou转载 2012-05-14 17:01:31 · 716 阅读 · 0 评论 -
linux通信--信号量
程序主要参考:http://hector.blog.51cto.com/4229131/758930#include #include #include #include #include #include #include union semun //必须自己定义{ int val; struct semid_ds *buf;转载 2012-05-14 20:42:14 · 598 阅读 · 0 评论 -
linux--select
在linux中的I/O都是用文件描述符表示的,文件描述符就是一个int,比如0是标准输入,1是标准输出,2是标准错误输出。同理,socket也是返回一个int文件描述符。select系统调用是用来让我们的程序监视多个文件描述符(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件描述符有某一个或多个发生了状态改变。只要有一个描述符状态变为可用,原创 2012-05-19 22:40:04 · 945 阅读 · 0 评论 -
进程
子进程与父进程共享哪些资源?答:复制出来的子进程的task_struct结构与系统的堆栈空间是与父进程独立的,但其他资源却是与父进程共享的,比如文件指针,socket描述符等。不同的进程使用不同的地址空间,子进程被创建之后,父进程的全局变量、静态变量和 fork 处的静态变量会复制到子进程的地址空间中,自此以后,二者开始“各行其是”,互不干扰,所以,所有的“变量”都将各自独立 例题:当原创 2012-05-20 13:14:43 · 718 阅读 · 0 评论 -
线程与进程的异同
很简单经典的题目,但是要回答全面,还是得好好准备参考:http://www.ezloo.com/2008/05/process_and_thread.html1、相同点:(a)二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略。(b) 每个进程都有一个进程控制块,线程也拥有一个线程控制块。(c) 线程共享父进程中的资源,子进程也在刚创建之后共享父进程转载 2012-05-20 13:46:50 · 836 阅读 · 0 评论 -
多线程操作
windows c++中的sleep(3000)是3000毫秒,就是3秒而linux中sleep(3000)是3000秒。实现多线程程序,一个线程打印3的倍数,另一个线程打印剩下数字应该要用条件变量实现,条件变量一定要和互斥量连用信号量与Mutex最大的不同是,Mutex只能被acquire它的线程release, 可semaphore可以被不同的线程release原创 2012-06-20 09:36:29 · 832 阅读 · 0 评论 -
linux多线程基本编程
主要参考:作者:吴秦出处:http://www.cnblogs.com/skynet/前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)转载 2012-05-15 16:49:53 · 750 阅读 · 0 评论 -
多线程生产者和消费者
#include #include #include #include #include #include using namespace std;const int ConsumerNum = 3;const int PruducterNum = 2;const int M = 20;//缓存区大小int in = 0;int out = 0;int buff[原创 2012-06-20 11:23:35 · 848 阅读 · 0 评论 -
信号量和互斥量
转自:http://learning.iteye.com/blog/13275031. 互斥量用于线程的互斥,信号线用于线程的同步。 这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基转载 2012-06-29 14:56:04 · 592 阅读 · 0 评论 -
线程同步机制有临界区、互斥、信号量优缺点
线程同步技术。 1. Critical Sections(临界段),源代码中如果有不能由两个或两个以上线程同时执行的部分,可以用临界段来使这部分的代码执行串行化。它只能在一个独立的进程或一个独立的应用程序中使用。使用方法如下: //在窗体创建中 InitializeCriticalSection(Critical1) //在窗体销毁中 DeleteCriti转载 2012-07-03 15:01:03 · 4837 阅读 · 0 评论 -
正则表达式shell
http://blog.chinaunix.net/uid-26707720-id-3084204.html正则表达式介绍 使用s h e l l时,从一个文件中抽取多于一个字符串将会很麻烦。例如,在一个文本中抽取一个词,它的头两个字符是大写的,后面紧跟四个数字。如果不使用某种正则表达式,在s h e l l中将不能实现这个操作。 正则表达式是一种可转载 2012-08-02 10:24:17 · 645 阅读 · 0 评论 -
linux删除空行 基本操作
grep: grep -v '^$' filesed: sed '/^$/d' file 或 sed -n '/./p' fileawk: awk '/./ {print}' filedu -h --max-depth=1 查看一级目录原创 2012-08-02 10:12:47 · 586 阅读 · 0 评论 -
vim复制
http://hi.baidu.com/dubailon/blog/item/5bdccf186f713d71dbb4bd60.html/cmtid/5d8d0df2f647905f342acc3b用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在转载 2012-08-06 23:32:05 · 586 阅读 · 0 评论 -
vim 基本设置
vi ~/.vimrc syntax enable "语法高亮set nu "显示行号set ruler "在右下角显示光标的坐标set hlsearch "高亮显示搜索结果set incsearch "边输边搜,即时反馈搜索结果,这个可能看个人喜好set showcmd "在ruler左边显示当前正在输入的命令,提示性的,避免误操作set expand转载 2012-08-08 14:10:39 · 631 阅读 · 0 评论 -
awk
cat testset | awk -F '\t' '{print $1}' > rst1awk默认是[ \t\n]+对行切分,所以必须指定只用 '\t'awk的字段下标从1开始计数原创 2012-07-23 17:13:12 · 614 阅读 · 0 评论 -
perl 参数传递
http://hi.baidu.com/rootme/blog/item/352738385690aff93b87cef5.htmlhttp://blog.csdn.net/jiangredsheep/archive/2006/01/18/583312.aspxGetopt::Std模块的使用:初始设置: 在程序中加入如下代码:use Ge转载 2012-08-08 18:17:19 · 5811 阅读 · 0 评论 -
linux脚本--输出占用内存最多的进程ID
ps aux |sort -rn -k4|head -1|awk '{ print $2 }'ps aux指令是将服务器内所有进程列出来sort -r 逆序排列-n 将字段作为数字-d 按照字典顺序排序-kn 按照第n个字段排序,注意这里是从1开始awk 打印字段,从0开始cat log | awk -F '.' '{print $1原创 2012-07-10 08:48:58 · 745 阅读 · 0 评论 -
Linux进程间通信分类 以及 pipe的原理实现
http://blog.sina.com.cn/s/blog_4a84bd960100by8s.htmlhttp://home.lupaworld.com/home-space-uid-296848-do-blog-id-230801.html一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了Linux环境下的几种转载 2012-08-21 08:03:09 · 19276 阅读 · 2 评论 -
输出两个文件中不同/相同的行
http://blog.csdn.net/wzhwho/article/details/6169603[root@bb-sns-nac-test02 ~]# cat f1.txt aaa bbb ccc ddd eee fff [root@bb-sns-nac-test02 ~]# cat f2.txt ddd eee fff ggg h转载 2012-10-17 10:55:54 · 2416 阅读 · 0 评论 -
查看网络端口使用情况
netstat -tln 命令是用来查看linux的端口使用情况netstat -a 查看所有的服务端口sudo netstat -ap 查看所有的服务端口并显示对应的服务程序名原创 2012-10-20 18:30:51 · 1366 阅读 · 0 评论 -
自旋锁和互斥锁区别
http://blog.csdn.net/kyokowl/article/details/6294341POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Cri转载 2012-10-24 08:55:06 · 80480 阅读 · 3 评论 -
文件锁
http://www.2cto.com/os/201109/103758.html 多用户多任务操作系统中非常重要的一个内容就是文件锁。用户在更新文件时,期望可以使用某种机制,防止两种进程同时更新文件同一区域而造成丢失,或者防止文件内容在未更新完毕时被读取等并发引起的问题,这种机制就是文件锁。 进程在操作文件期间,可以使用文件锁,锁定文件中的敏感部分,防止其他进程越权操作该部分数据转载 2012-10-24 09:02:51 · 1699 阅读 · 0 评论 -
linux 多线程 多进程同步
多线程 同步的方法1. 临界区2. 互斥量(注意mutex只能用于线程的互斥,不能用于进程)3. 信号量4. 事件多进程 同步方法管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信号是比较复杂的通信方转载 2012-11-21 13:03:16 · 1059 阅读 · 0 评论 -
多线程读写进程
注意这里为什么不用mutex,因为只能是对mutex加锁的线程对其解锁,其他线程不能解锁http://blog.csdn.net/caotiancool/article/details/374101读者优先算法:设置两个互斥信号量:rwmutex 用于写者与其他读者/写者互斥的访问共享数据 rmutex 用于读者互斥的访问读者计数器rea转载 2012-06-20 13:31:55 · 1124 阅读 · 0 评论 -
c++实现读写共享锁
http://blog.csdn.net/raomeng1/article/details/7685421一、使用互斥锁和条件变量实现读写锁:class readwrite_lock{public: readwrite_lock() : stat(0) { } void readLock() { mtx.lock(); while (stat < 0)转载 2012-11-21 11:23:43 · 9726 阅读 · 0 评论 -
diff
http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html作者: 阮一峰日期: 2012年8月29日diff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入: $ diff diff就会告诉你,这两转载 2012-12-11 14:28:07 · 382 阅读 · 0 评论 -
回车与换行 ASCII
CR - Carriage Return 回车 \r 0x0DLF - Line Feed 换行 \n 0x0A一般情况下一个unix文件转换为dos文件之后,'\n'会变为'\r\n'相反,dos文件变为unix文件时,'\r\n'会变为'\n'python中的readline比较怪异,在读dos文本时,按照文档是读转载 2013-01-08 09:52:38 · 817 阅读 · 0 评论 -
linux查看内存
http://blog.yufeng.info/archives/2456转载 2013-01-20 19:06:23 · 434 阅读 · 0 评论 -
linux shell if 参数
http://www.cnblogs.com/image-eye/archive/2011/08/20/2147015.htmlshell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定转载 2013-03-06 21:14:46 · 637 阅读 · 0 评论 -
awk
http://zhu8337797.blog.163.com/blog/static/17061754920101130317199/http://blog.csdn.net/langlang2671/article/details/8174255awk作为文本处理优秀工具之一,它有独自丰富的运算符。下面我们一起归纳总结一下,所有运算符。 可以分为:算术运算符,赋值运算转载 2013-03-18 16:58:59 · 783 阅读 · 0 评论 -
编译boost相关文件
在linux下编译一个项目,用到了boost的一些类用下面的方法编译g++ main.cpp impurity.cpp tuple.cpp boosted_classify.cpp forest.cpp -lboost_thread -lpthread -O4 -o rtrank一直提示 cannot find -lboost_thread系统是安装过boo原创 2013-05-18 22:06:29 · 898 阅读 · 0 评论 -
错误检测c++
首先,在编译程序时加-g选项,提高gdb调试功能然后输入指令:ulimit -c unlimited 然后运行程序,可以通过下面的方法查看是哪行出错: gdb exe(程序的名字) ./core.4537(错误生成的文件,可以显示栈调用的层次) gdb ./core.4537where会出现以下消息:#0 0x00002b2c6dd57215 in ra原创 2012-04-01 16:11:39 · 4397 阅读 · 0 评论 -
linux 基本操作
1. 查看cpu数目 cat /proc/cpuinfo | grep 'cpu cores' 因为cat /proc/cpuinfo中显示的并不是真实的数目转载 2013-08-01 14:37:04 · 655 阅读 · 0 评论 -
less
http://kiminotes.iteye.com/blog/585365在 Linux 系统上我个人比较喜欢使用 less 命令来查看文本文件。less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。可以尝试使用 less 和 vi 打开一个很大的文件,你就会看到它们之间在速度转载 2013-08-01 17:31:49 · 687 阅读 · 0 评论 -
vim 代码块排版
http://cookoo.iteye.com/blog/32275方法:1. 按v进入visual状态,选择多行,用>或2. 通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码转载 2013-08-02 12:25:43 · 2140 阅读 · 0 评论 -
各种正则
http://blog.csdn.net/xeroo/article/details/593755在各种常用的工具中,正则表达式如此的相似却又不同。下表列出了一些常用的正则表达式,以及其不同之处。项目总多,遗漏必有不少,请各位看官不吝指出。以perl的正则为基准,不同的用法以粉红色标出。(xhchen8018@yahoo.com.cn)gre转载 2012-08-02 10:19:57 · 520 阅读 · 0 评论 -
svn代码回滚命令
http://www.cnblogs.com/jndream/archive/2012/03/20/2407955.html取消对代码的修改分为两种情况: 第一种情况:改动没有被提交(commit)。这种情况下,使用svn revert就能取消之前的修改。svn revert用法如下:# svn revert [-R] something转载 2013-08-19 20:00:46 · 908 阅读 · 0 评论