随笔分类 - 05.Linux-C
摘要:函数汇总: open()、write()、read()、close() fopen()、fwrite()、fread()、fclose() 一、什么是文件 在讲述文件操作之前,我们首先要知道什么是文件。看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本
阅读全文
摘要:C 编程中,经常需要操作的内存可分为下面几个类别: C 标准函数库提供了许多函数来实现对堆上内存管理,其中包括:malloc()函数,free()函数,calloc()函数和realloc()函数。使用这些函数需要包含头文件stdlib.h。它们的声明如下: void * malloc(size_t
阅读全文
摘要:散列表(也叫哈希表),是根据关键码值直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 - 数据结构中,有个时间算法复杂度O(n)的概念来衡量某种算法在时间效率上的优劣。哈希表的理想算法复杂度为O(1
阅读全文
摘要:条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重
阅读全文
摘要:定义函数 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该
阅读全文
摘要:一、sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致 sprintf 比 printf 有用得多。所
阅读全文
摘要:一、puts() 函数详解 puts()函数用来向 标准输出设备 (屏幕)写字符串并换行,调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。 puts()函数的作用与语 printf("%s\n", s) 相同。 说明: (1)puts()函数只能输出字符串,不能输出数
阅读全文
摘要:一、gets() 函数详解 gets()函数用来从 标准输入设备(键盘)读取字符串直到 回车结束,但回车符('\n')不属于这个字符串。 调用格式为: gets(str); 其中str为字符串变量(字符串数组名或字符串指针)。 gets(str) 函数与 scanf("%s", &str) 相似,但
阅读全文
摘要:表头文件 定义函数 函数说明 返回值 范例 执行 表头文件 定义函数 返回值 范例 执行 表头文件 定义函数 函数说明 返回值 范例 执行 表头文件 定义函数 函数说明 返回值 范例 执行 表头文件 定义函数 函数说明 返回值 附加说明 范例 执行
阅读全文
摘要:首先给出《The_C_Programming_Language》这本书中的例子: 这里主要解释下为什么要用int型来接受getchar函数。 很多时候,我们会写这样的两行代码: 这样就很有可能出现问题。因为getchar函数除了返回终端输入的字符外,在遇到Ctrl+D(Linux下)即文件结束符EO
阅读全文
摘要:表头文件 定义函数 函数说明 popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随
阅读全文
摘要:Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽。 并发系统常使用reactor模式,代替常用的多线程的处理方式,节省系统的资源,提高系统
阅读全文
摘要:fcntl系统调用 功能描述:根据文件描述词来操作文件的特性。 用法: 参数: fd:文件描述词。 cmd:操作命令。 arg:供命令使用的参数。 lock:同上。 有以下操作命令可供使用 一、F_DUPFD:复制文件描述词。 二、FD_CLOEXEC :设置close-on-exec标志。 如果F
阅读全文
摘要:在写网络程序的时候,建立TCP socket: 然后再绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置问AF_INET,即使用IP。 相关的头文件定义: AF = Address Family PF = Protocol Family
阅读全文
摘要:提问一: Linux IO多路复用有 epoll, poll, select,知道epoll性能比其他几者要好。也在网上查了一下这几者的区别,表示没有弄明白。 IO多路复用是什么意思,在实际的应用中是指什么情况? 以及IO多路复用在一些异步web server中的实际应用,就好比nginx是怎样使用
阅读全文
摘要:查看官方文档 cmake命令 选项 CMake变量 CMake命令汇总 / add_custom_command add_custom_target / add_definitions / add_dependencies add_library / add_subdirectory / add_t
阅读全文
摘要:select IO复用机制: http://www.cnblogs.com/hjslovewcl/archive/2011/03/16/2314330.html http://blog.csdn.net/lingfengtengfei/article/details/12392449 http://
阅读全文
摘要:若子进程先于父进程结束时,父进程调用wait()函数和不调用wait()函数会产生两种不同的结果: --> 如果父进程没有调用wait()和waitpid()函数,子进程就会进入僵死状态。 --> 如果父进程调用了wait()和waitpid()函数,就不会使子进程变为僵尸进程。 这是为什么呢?现在
阅读全文
摘要:一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork() 函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据
阅读全文

浙公网安备 33010602011771号