c
文章平均质量分 74
wuyue五月
这个作者很懒,什么都没留下…
展开
-
readv()和writev()函数
read()和write()系统调用每次在文件和进程的地址空间之间传送一块连续的数据。但是,应用有时也需要将分散在内存多处地方的数据连续写到文件中,或者反之。在这种情况下,如果要从文件中读一片连续的数据至进程的不同区域,使用read()则要么一次将它们读至一个较大的缓冲区中,然后将它们分成若干部分复制到不同的区域,要么调用read()若干次分批将它们读至不同区域。同样,如果想将程序中不同区域的数据转载 2016-05-14 17:19:34 · 4869 阅读 · 0 评论 -
论fork()函数与Linux中的多线程编程
转载请说明出处:http://blog.csdn.net/cywosp/article/details/27316803一、fork()函数 在操作系统的基本概念中进程是程序的一次执行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位)。在Linux系统中创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程)。系统调用函数f转载 2016-08-15 20:04:57 · 407 阅读 · 0 评论 -
(GNU C)__attribute__机制
__attribute__用途:函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。语法格式:__attribute__ ((attribute-list)) 另外,它必须放于声明的尾部“;”之前。函数属性 函数属性可以帮助开发者把一些特性添加到函数声明转载 2015-08-16 22:10:23 · 572 阅读 · 0 评论 -
linux消息队列总结
转载地址:http://blog.csdn.net/stonecao/article/details/103642871.消息队列简介实现linux进程通信的方式有5种:--信号(Singal)--管道(Pipe)--消息队列(Message)--信号量(Semaphore)每种进程通信方式实现方式和功能不一样,带来适用的场景也有所不同,消息队列是链表队列,它通过内转载 2015-12-31 15:08:20 · 583 阅读 · 0 评论 -
C结构体里的成员数组和指针(特别是零长数组说明)
单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。为了方便你把代码copy过去编译和调试,我把代码列在下面:1234567转载 2015-08-20 16:44:19 · 668 阅读 · 0 评论 -
volatile关键字的作用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:转载 2015-08-20 11:17:15 · 773 阅读 · 0 评论 -
C语言中的static 详细分析
google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。 C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中定义一次,如果转载 2015-03-03 20:44:08 · 364 阅读 · 0 评论 -
指针数组 详解
看到网上一道面试题,主要是考指针的。我做了下,幸好没错,分享下。[cpp] view plaincopy1#include 2 using namespace std; 3 int main() 4 { 5 char *str[]={"welcome","to","Fortemedia","Nanjing"}; 6 char**p=str+1;转载 2015-08-28 13:55:23 · 464 阅读 · 0 评论 -
可重入函数与非线程安全函数一览
深入理解可重入与线程安全在多线程编程和信号处理过程中,经常会遇到可重入(reentrance)与线程安全(thread-safe)。很多人纠结于reentrance和thread-safe两个概念理解纠缠不清。我想救我对reentrance和thread-safe的理解作个总结一、可重入(reentrance)首先来看下APUE中,列出的可重入函数:转载 2015-03-23 21:44:36 · 3846 阅读 · 0 评论 -
信号
最近有个child process block main process的问题,希望能够用信号跳出block,所以搜索到了一个比较好的资料,在这里mark!来源:http://www.crazyhadoop.com/2011/04/04/%E5%85%AB%E4%BF%A1%E5%8F%B7/===========================================转载 2015-03-29 21:19:28 · 506 阅读 · 0 评论 -
exec 函数
(1)exec函数说明fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新程序的内容替换了。另外,这里的可执行文件既可以是二进制文件,也可转载 2015-03-29 16:09:35 · 457 阅读 · 0 评论 -
守护进程的单实例实现
守护进程的单实例实现为了正常工作,守护进程应该实现为单实例的,也就是在任一时刻只运行该守护进程的一个副本,因为这个守护进程要排它的访问一个设备。这里需要用到文件锁的机制,如果守护进程创建一个文件,并且在整个文件上加上一把锁,那就只允许创建一把这样的写锁,在此之后如果试图再创建一把这样的写锁就将失败,以此向续守护进程副本指明已经有一个副本正在运行。而这个锁文件通常都放在/var/run目转载 2015-03-28 21:24:04 · 479 阅读 · 0 评论 -
ioctl函数
ioctl函数 本函数影响由fd参数引用的一个打开的文件。 #includeint ioctl( int fd, int request, .../* void *arg */ );返回0:成功 -1:出错 第三个参数总是一个指针,但指针的类型依赖于request参数。我们可以把和网络相关的请求划分为6类:套接口操作文件操作接口操作ARP高转载 2015-03-04 09:59:56 · 660 阅读 · 0 评论 -
linux socket网络编程:fcntl select(多个客户端连接服务器端情形)
一、引言 在实际情况中,人们往往遇到多个客户端连接服务器端的情况。由于之前介绍的函数如connect,recv,send等都是阻塞性函数,若资源没有充分准备好,则调用该函数的进程将进入睡眠状态,这样就无法处理I/O多路复用的情况了。 本文给出两种I/O多路复用的方法:fcntl(),select()。可以看到,由于Linux中把socket当作一种特殊的文件描述符,这给用户的处转载 2015-03-02 14:06:30 · 635 阅读 · 0 评论 -
setjmp和longjmp函数使用详解
非局部跳转语句---setjmp和longjmp函数。非局部指的是,这不是由普通C语言goto,语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函数调用路径上的某一个函数中。#include Int setjmp(jmp_buf env); 返回值:若直接调用则返回0,若从longjmp调用返回则返回非0值Void longjmp(jmp_buf env,in转载 2015-02-07 22:06:14 · 457 阅读 · 0 评论 -
谈自动化测试框架思想与构建
谈自动化测试框架思想与构建2011-06-03 17:06 散步的SUN 51Testing软件测试博客 字号:T |T自动化测试一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。本文介绍的是自动化测试框架思想与构建,一起来看。AD:WOT2015 互联网运维与开发者大会 热销抢票序转载 2015-01-11 17:45:48 · 701 阅读 · 0 评论