随笔分类 -  C/C++

摘要:1.概念异或运算符”∧”也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。运算 说明0^0=0,0^1=1 0异或任何数,其结果=任何数1^0=1,1^1=0 1异或任何数,其结果=任何数取反x^x=0 阅读全文
posted @ 2019-01-29 09:13 骑单车去旅行 阅读(1361) 评论(0) 推荐(1)
摘要:值传递 #include <stdio.h> /* 变量x、y为Swap函数的形式参数 */ void Swap(int x, int y) { int tmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d\n", x, y); } int mai 阅读全文
posted @ 2019-01-28 14:30 骑单车去旅行 阅读(631) 评论(0) 推荐(0)
摘要:读完总结:归根结底指针是一种类型,就像int,float,char一样的是一种类型,可以定义一个变量即指针类型变量,区别函数指针和指针函数主要就是看哪个名词在后面,哪个在后哪个就是主体,另一个就是起修饰作用。 函数指针:就是一个指针变量,指向一个函数; 指针函数:就是一个函数,这个函数返回一个指针类 阅读全文
posted @ 2019-01-28 11:16 骑单车去旅行 阅读(950) 评论(0) 推荐(0)
摘要:可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据 阅读全文
posted @ 2018-07-03 11:38 骑单车去旅行 阅读(628) 评论(0) 推荐(0)
摘要:C 语言变量和函数命名规范: 关于C语言变量和函数命名规范 据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多 精力试图发明世界上最好的命据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都 阅读全文
posted @ 2018-05-09 21:34 骑单车去旅行 阅读(8229) 评论(0) 推荐(0)
摘要:函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。 返回值 若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值. [cpp] view plain copy #include <stdio 阅读全文
posted @ 2018-03-07 10:38 骑单车去旅行 阅读(1167) 评论(0) 推荐(0)
摘要:为什么要使用setvbuf函数 如果你的内存足够大,可以把文件IO的BUF设置大一些,这样每次你用fopen/fread/fwrite/fscanf/fprintf语句的时候,都会在内存里操作,减少内存到磁盘IO读写的操作次数,提高系统效率。如果你的程序的功能涉及到类似数据库、视频、音频、图像处理等 阅读全文
posted @ 2018-03-07 09:42 骑单车去旅行 阅读(1060) 评论(0) 推荐(0)
摘要:在我的学习过程中,从文件读取数据是一件很麻烦的事,所幸有sscanf()函数。 C语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( string str, string fmt, mixed var1, mixed va 阅读全文
posted @ 2017-12-27 13:10 骑单车去旅行 阅读(332) 评论(0) 推荐(0)
摘要:Wait和waipid函数 当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个一步事件,所以这种信号也是内核系那个父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。 现在要知道调用wait 阅读全文
posted @ 2017-12-11 14:51 骑单车去旅行 阅读(413) 评论(0) 推荐(0)
摘要:无名管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以 阅读全文
posted @ 2017-12-07 23:16 骑单车去旅行 阅读(470) 评论(0) 推荐(0)
摘要:在Linux和UNIX中有很多的输入输出函数,有时真是让想跟它攀点关系的菜鸟们束手无策。先来看看都有哪些函数,通过解析与总结,看看能不能让大家能这些函数有个理性的认识,哦,原来是这么回事,也就算我没白花这份闲。 内核文件I/O->标准库I/O->高级I/O->IPC中 1. read()/write 阅读全文
posted @ 2017-12-06 13:24 骑单车去旅行 阅读(1567) 评论(0) 推荐(1)
摘要:2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进 阅读全文
posted @ 2017-12-06 12:56 骑单车去旅行 阅读(404) 评论(0) 推荐(0)
摘要:功能描述:根据文件描述词来操作文件的特性。 #include <unistd.h>#include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cm 阅读全文
posted @ 2017-12-06 10:18 骑单车去旅行 阅读(467) 评论(0) 推荐(0)
摘要:fork() 用来创建进程fork(void) 在linux中所有进程都是由init进程直接或间接创建 成功:在父进程中将返回子进程的PID;子进程返回0,以区别父进程 失败:父进程中返回-1 结果: [root@sun PCB]# ps aux root 3905 0.0 0.1 108468 1 阅读全文
posted @ 2017-12-05 23:25 骑单车去旅行 阅读(9257) 评论(0) 推荐(1)
摘要:写时复制技术最初产生于Unix系统,用于实现一种傻瓜式的进程创建:当发出fork( )系统调用时,内核原样复制父进程的整个地址空间并把复制的那一份分配给子进程。这种行为是非常耗时的,因为它需要: · 为子进程的页表分配页面 · 为子进程的页分配页面 · 初始化子进程的页表 · 把父进程的页复制到子进 阅读全文
posted @ 2017-12-05 23:13 骑单车去旅行 阅读(1394) 评论(0) 推荐(0)
摘要:1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈 阅读全文
posted @ 2017-12-05 23:11 骑单车去旅行 阅读(612) 评论(0) 推荐(0)
摘要:问题引出 一个client程序:select 超时监听 sockfd套接字 和 STDIN_FILENO标准输入:若sockfd可读则接收server报文;若标准输入可读(按下回车),则开始用fgets/fscanf等函数从标准输入捕获字符后发送给server;若select 2秒超时,client 阅读全文
posted @ 2017-12-05 15:53 骑单车去旅行 阅读(603) 评论(0) 推荐(0)
摘要:一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事 阅读全文
posted @ 2017-12-04 14:46 骑单车去旅行 阅读(320) 评论(0) 推荐(0)
摘要:在学习ioctl 时常常跟 read, write 混淆。其实 ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。 而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。 ioctl(keyFd, FIONREAD, &b 阅读全文
posted @ 2017-11-28 12:46 骑单车去旅行 阅读(1052) 评论(0) 推荐(0)
摘要:描述 C 库函数 int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中。 声明 下面是 fprintf() 函数的声明。 参数 stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。 fo 阅读全文
posted @ 2017-11-27 14:08 骑单车去旅行 阅读(726) 评论(0) 推荐(0)