Linux
文章平均质量分 89
Sunshine_top
安安静静、认认真真完成自己的事情
展开
-
ubuntu乱码
我的问题: 从网站获取的新闻直接存在文本(.txt)中会出现乱码。解决方式: 解决txt文档乱码 1. 打开终端,在其中输入命令: gconf-editor 并回车。 2. 在新开的窗口里,在左边依次展开“apps”、“gedit-2”、“preferences”、“encodings”。 3. 在右边的窗口里,双击“auto_detected”。 4.转载 2014-10-24 08:40:56 · 1254 阅读 · 0 评论 -
linux静态库和共享库
这篇文章不错:http://blog.chinaunix.net/uid-26833883-id-3219335.html静态库 这类库的名字一般是libxxx.a优点:编译后的执行程序不需要外部的函数库支持,因为整个函数库的所有数据都被整合进目标代码中,所有使用的函数都已经被编译进可执行文件了。缺点:(1)利用静态函数库编译成的文件比较大,因为整个函数原创 2015-05-20 20:17:19 · 1972 阅读 · 0 评论 -
linux软链接和硬链接
1、概述 硬链接(hard link)与软链接(symbolic link)是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS,参考文章Linux 文件系统剖析) 的四个基本概念之一。2、硬链接和软链接硬链接 硬链接是通过索引节点原创 2015-05-24 15:27:28 · 1883 阅读 · 0 评论 -
Linux 中的零拷贝技术,第 2 部分
http://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy2/index.html?ca=drs-Linux 中的直接 I/O如果应用程序可以直接访问网络接口存储,那么在应用程序访问数据之前存储总线就不需要被遍历,数据传输所引起的开销将会是最小的。应用程序或者运行在用户模式下的库函数可以直接访问硬件设备的存储,操作系统内转载 2015-05-18 11:13:07 · 1242 阅读 · 0 评论 -
shell统计代码行数
写了一堆代码,那么,如何知道自己的代码量呢?下面是通过一行shell命令来统计某个目录下或某个源文件中代码的行数。第一版本find /home/yang/libnids-1.24/ -name *.c -or -name *.h -or -name *.cpp | xargs cat | wc -l该版本统计目录“/home/yang/libnids-1.24”目录下的所有源文件(后缀原创 2015-06-11 20:15:39 · 7681 阅读 · 0 评论 -
可靠信号与不可靠信号
来自:http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html一、信号及信号来源信号本质 信号是软件中断,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知转载 2015-05-25 21:13:52 · 9227 阅读 · 1 评论 -
UNIX域协议
文章参考UNP,例子也来源于该书。 Unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所使用的API就是在不同主机上执行客户/服务器通信所用的API(套接字API)。 Unix域套接字仅仅复制数据,并不执行协议处理,不需要添加或删除网络报头,无需计算校验和,不要产生顺序号,无需发送确认报文。Unix域套接字提供流和数据报两种接口。Unix原创 2015-05-29 10:13:12 · 1511 阅读 · 0 评论 -
进程同步和线程同步
怎样同步多个线程或多个进程的活动。为允许在线程或进程间共享数据,同步是必需的。 互斥锁和条件变量是同步的基本组成部分。互斥锁和条件变量出自POSIX.1线程标准,它们总是可用来同步一个进程内的各个线程的。如果一个互斥锁或条件变量存放在多个进程间共享的某个内存中,那么POSIX还允许它用于这些进程间的同步。互斥锁、条件变量、读写锁、信号量均可用于进程、线程的同步。多线原创 2015-05-30 09:53:15 · 6124 阅读 · 0 评论 -
linux无锁编程
简单的笔记,未完待续一道题:无锁化编程有哪些常见方法?针对计数器,可以使用原子加只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)RCU(Read-Copy-Update),新旧副本切换机制,对于旧副本可以采用延迟释放的做法 CAS(Compare-and-Swap),如无锁栈,无锁队列等待解析:一、RCU原创 2015-08-20 19:03:56 · 2911 阅读 · 0 评论 -
shell中if条件字符串、数字 [[ ]]和[ ]区别
Shell里的条件判断方式很恼火,经常不知道该用[]、[[]]、(()),还是test、let。先说[]和test,两者是一样的,在命令行里test expr和[ expr ]的效果相同。test的三个基本作用是判断文件、判断字符串、判断整数。支持使用与或非将表达式连接起来。要注意的有:1. test中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比原创 2015-09-08 11:13:22 · 6201 阅读 · 0 评论 -
Makefile的注意事项
VPATH、vpath 在一些大的工程中,有大量的源文件,我们通常的做法是把这许多的源文件分类,并存放在不同的目录中。所以,当make需要去找寻文件的依赖关系时,你可以在文件前加上路径,但最好的方法是把一个路径告诉make,让make在该路径下自动去找。 Makefile文件变量“VPATH”就是完成这个功能的,如果没有指明这个变量,make只会在当前的目录中去找寻依赖文件和原创 2015-04-05 16:10:25 · 2453 阅读 · 0 评论 -
Vim的分割窗口split命令
显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文件。这一切都可以通过分割窗口实现。打开新窗口最简单的命令如下::split (水平分割) || :vsplit (垂直分割)这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中.CTRL-W w 命令可以用于在窗口间跳转。如果你在上面的窗口,它会跳转到下面的窗口,如果你在下面的窗口,它会转载 2016-08-05 16:52:57 · 11355 阅读 · 0 评论 -
setjmp和longjmp函数
setjmp和longjmp的用途 在C中,goto语句是不能跨函数的,而执行这类跳转功能的函数是setjmp和longjmp。这两个函数对于处理发生在深层嵌套函数调用中的出错情况是非常有用的。非局部指的是,这不是(注意:这两个函数无法在一个函数内部跳转,是针对函数间的跳转)类似goto语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的一个函数原创 2015-05-23 08:53:13 · 1958 阅读 · 0 评论 -
多线程:常见题目
1、线程基本概念、线程状态 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。 线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源(线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量、线程私有数据); 它可与同属一个进程的其它线程共享进程所拥有的全部原创 2015-05-18 19:52:03 · 2012 阅读 · 0 评论 -
linux C时间处理
http://blog.csdn.net/water_cow/article/details/7521567简介本文旨在为了解Linux各种时间类型与时间函数提供技术文档。1、Linux下常用时间类型Linux下常用时间类型有四种:time_t、struct tm、struct timeval、struct timespec1.1 time_t时间类型time_转载 2014-10-23 11:27:32 · 4030 阅读 · 0 评论 -
linux的COW(Copy-On-Write)
fork()后,子进程是父进程的副本。在fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,也就是说,两者的虚拟空间不同,但其对应的物理空间是同一个。当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间,如果不是因为exec,内核会给子进程的数据段、堆栈段分配相应的物理空间(至此两者有各自的进程空间,互不影响),而代原创 2015-03-25 20:25:45 · 2346 阅读 · 0 评论 -
vi/vim常用命令
工作模式插入命令a 在光标后附加文本A 在本行行尾附加文本i 在光标前插入I 在本行行首插入文本o 在光标下面插入新的一行O 在光标上面插入新的一行定位命令h 左移一个字符/ 向左的箭头键j 下移一行 / 向下的箭头键k 上移一行 / 向上的箭头键l 右移一个字符 / 向右的箭头键$ 移动到行尾0(数字零)原创 2015-03-15 21:29:13 · 1459 阅读 · 0 评论 -
tar命令
tar [-cxtzjvfpPN] 文件与目录 ....参数:-c : 建立一个压缩文件的参数指令(create 的意思);-x : 解开一个压缩文件的参数指令!-t : 查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与原创 2015-04-10 16:38:00 · 1056 阅读 · 0 评论 -
可重入函数
使用可重入函数进行更安全的信号处理http://blog.csdn.net/yueyahe/article/details/729126可重入性 在早期的编程中,不可重入性对程序员并不构成威胁;函数不会有并发访问,也没有中断。在很多较老的 C 语言实现中,函数被认为是在单线程进程的环境中运行。不过,现在,并发编程已普遍使用,您需要意识到这个缺陷。本文描原创 2015-05-27 15:07:04 · 1025 阅读 · 0 评论 -
sendfile: Linux中的"零拷贝"
译文:http://blog.csdn.net/caianye/article/details/7576198原文:http://www.linuxjournal.com/article/6345如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰到没有充分理解这个问题的人们。因此,我决定写一些文章略微深入的讲述这个问题,希望能将这个有用的特性解释清楚。在本文中原创 2015-05-18 14:50:47 · 2529 阅读 · 0 评论 -
进程通信方式:共享内存区
本文主要参考《unix网络编程卷2:进程间通信》另外可以参考以下文章:mmap:Linux环境进程间通信(五): 共享内存(上)System V共享内存: Linux环境进程间通信(五): 共享内存(下) 共享内存区是可用IPC方式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据传递就不再涉及内核(这里的“不再涉及内核”原创 2015-05-28 09:49:50 · 3180 阅读 · 0 评论 -
Linux进程间通信IPC的几种方式简介
Linux进程通信的源头 linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T(原为American Telephone & Telegraph的缩写,也是中文译名美国电话电报公司由来)的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段原创 2015-05-27 19:58:11 · 7379 阅读 · 0 评论 -
线程私有数据STD
http://blog.csdn.net/xluren/article/details/8226668以下来自:http://www.ibm.com/developerworks/cn/linux/thread/posix_threadapi/part2/概念及作用在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据。在多线程环境下,由于数据空间是原创 2015-05-16 15:20:06 · 2322 阅读 · 0 评论 -
Linux 中的零拷贝技术,第 1 部分
引言传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。这样做最大的好处是可以减少磁盘 I/O 的操作,因为如果所请求的数据已经存放在操作系统的高速缓冲存储器中,那么就不需要再进行实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限转载 2015-05-18 11:10:47 · 1337 阅读 · 0 评论 -
do{...}while(0)的意义和用法
libnids中的两个宏如下是libnids中定义的两个宏,这两个宏都包含了多个语句,看起来很复杂的样子。这两个宏定义其实是有潜藏的问题的,具体看本文第二部分中的“辅助定义复杂的宏,避免引用的时候出错”。#define START_CAP_QUEUE_PROCESS_THREAD() \ if(nids_params.multiproc) { /* threading... */ \原创 2015-05-21 21:39:34 · 1319 阅读 · 0 评论 -
linux进程性能数据检测
CPUlinux CPU使用率:http://www.blogjava.net/fjzag/articles/317773.html转载 2017-10-28 17:03:45 · 771 阅读 · 0 评论