Linux
Ansel_m
阿里天猫
展开
-
Linux系统编程
Linux系统编程 一.Linux系统编程概论1.1 系统编程基石syscall:libc:标准C库、系统调用封装、线程库、基本应用工具gcc:1.2 模块接口API:应用程序编程接口,源代码级别,能通过编译,由标准C语言定义,libc来实现ABI:应用程序二进制接口,二进制级别,能正常运行,关注调用约定、字节序、寄存器使用、系统调用、转载 2013-01-31 09:22:11 · 3334 阅读 · 0 评论 -
memcpy与memmove的实现
memcpy和memmove函数的实现,需要注意memmove的覆盖问题,还有指针类型需要考虑。下面的例子中,先给出了错误的例子,而后给出了正确的例子,引以为戒!区别:两个函数都是进行n字节内存内容的拷贝,入口参数和返回参数也都一样,可是这两个函数在内部实现上是有一定区别的,这主要是因为dest内存区域和src内存区域可能有一下四种不同的情况,注意count的影响:src的转载 2013-03-27 13:08:06 · 528 阅读 · 0 评论 -
vim的快捷键
1.进入vi后须先按a或i后才能编辑 //标志 就是有 末行有 INSERT2.退出 先按esc 再按shift+:最后wq或q或q!3.保存 先按esc 再按shift+:最后w4.使vi的字具有彩色 esc 后 shift + :后在:模式下输入syntax on(一次性)5.设置vi的行号 esc 后 shift + :后在:模式下输入set n转载 2013-03-18 17:39:12 · 556 阅读 · 0 评论 -
相对路径与绝对路径
绝对路径: 相对与系统而言的,以根目录开始。相对路径:相对与当前目录而言,以 . 或以 ..开头 。原创 2013-03-18 19:20:13 · 545 阅读 · 0 评论 -
unix常用命令
1 .pwd:查看当前工作目录(printf work directory)2.ls:显示当前目录下的文件或文件件(list)3.ls -l4.ls -G 安类别显示所有文件或目录 普通文件 - 黑色 目录 -蓝色 可执行文件 -红色5.cd 切换目录(change directory)6.原创 2013-03-18 16:43:24 · 468 阅读 · 0 评论 -
linux下gcc简介
编译:第一步、是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:gcc -E hello.c -o hello.i预处理的宏定义插入到hello.i中第二步、是将hello.i编译为目标代码,这可以通过使用-c参数来完成:gcc -c hello.i -o hello.o也可以通过源文件直接生成gcc -c hello.c第三步、是将生成的目转载 2013-03-06 15:36:58 · 645 阅读 · 0 评论 -
c编译器中volatile的作用
unsigned long delay = jiffies + 5*HZ; while (time_before(jiffies, delay)) cond_resched(); c编译器通常只将变量装载一次,一般情况下不能保证循环中的jiffies变量在每次循环中被读取时都重新被载入。但是我们要求jiffi转载 2013-02-21 16:35:10 · 487 阅读 · 0 评论 -
unix进程间的通信方式
(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。(3)信号(Signal):信号是比较复杂转载 2013-02-16 21:36:59 · 484 阅读 · 0 评论 -
linux c调试
C 标准错误处理函数 fprintf 和 printf在源代码中经常会出现下面一些错误处理函数。一、errno头文件:#include 函数原型:errno功能:记录系统的最后一次错误代码参数:无返回值:错误代号(整型值)例子:1 2 3 4 5 if((sockf转载 2013-01-31 14:40:54 · 478 阅读 · 0 评论 -
利用posix_fadvise清理系统中的文件缓存
利用posix_fadvise清理系统中的文件缓存当我们需要对某段读写文件并进行处理的程序进行性能测试时,文件会被系统cache住从而影响I/O的效率,必须清理cache中的对应文件的才能正确的进行性能测试。通常清理内存可以采用下面的这条命令,但这条命令只有root才能使用,另外一方面这个会清理所有的cache,也许会影响其他程序的性能。echo 3>/proc/sys转载 2013-01-31 10:58:33 · 840 阅读 · 0 评论 -
mmap参数详解
mmap 功能描述: mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。 基于文件的映射,在mmap和munmap执行过程的任何时刻,被映射文件的st_atime 可能被更新。如果st_atime字段在前述的情况下没有得到更新,首次对映射区转载 2013-01-31 10:57:13 · 3228 阅读 · 0 评论 -
Mac 安装 Homebrew
ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"转载 2016-04-08 23:05:10 · 387 阅读 · 0 评论