![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux编程
小胡_uYou
这个作者很懒,什么都没留下…
展开
-
c标准库I/O缓冲区和内核缓冲区
1.C标准库的I/O缓冲区 UNIX的传统 是Everything is a file,键盘、显示器、串口、磁盘等设备在/dev 目录下都有一个特殊的设备文件与之对应,这些设备文件也可以像普通文件(保存在磁盘上的文件)一样打开、读、写和关闭,使用的函数接口是相同的。用户程序调用C标准I/O库函数读写普通文件或设备,而这些库函数要通过系统调用把读写请求传给内核 ,最终由内核驱动磁转载 2016-05-10 20:13:53 · 662 阅读 · 0 评论 -
linux系统学习之进程
本小结记录下进程的学习。 进程要有四个重要的系统函数,分别是fork(),exit(),wait(),exec系列函数。 首先来看fork,函数原型为pid_t fork();主要用于一个进程(父进程)创建一个新进程(子进程)。子进程几乎是父进程的翻版,它拥有和父进程相同的堆,栈,数据段,执行文本段(程序段)。但是在内部实现的时候,子进程并不直接复制父进程的这些内容,因为大多数情况下,创建一个子原创 2016-05-10 22:24:16 · 278 阅读 · 0 评论 -
主线程退出后,子线程会不会退出
额,好吧,这是个标题党,其实所有的线程都是平级的,根本不存在主线程和子线程。下文所述为了方便,将在main函数中的线程看做主线程,其它线程看成子线程,特此说明。先考虑以下代码: #include #include #include void* thrd_start_routine(void* v){ sleep(10); printf("cr原创 2016-05-26 11:34:05 · 15790 阅读 · 2 评论 -
vim使用简明教程
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类转载 2016-05-27 09:10:02 · 231 阅读 · 0 评论 -
linux系统学习之管道
首先理解管道其实是一个二进制字节流,它是内核为维持两个或多个进程互相通信的一种手段(一种IPC)。如下图所示: 首先,管道是一个字节流,这意味着读可以从管道中读取一部分字节流,然后剩下一部分等待下一次读取,这是允许的。如下测试: #include#include #include #include #include #define BUF_SIZ 1原创 2016-05-15 10:20:44 · 370 阅读 · 0 评论 -
同步IO,异步IO,阻塞IO,非阻塞IO
一直以来对同步,异步,阻塞,非阻塞半懂不懂,下午搜了下网上别人的博客,稍微总结下,让自己也加深下理解。 首先,一般讲到同步,异步,阻塞,非阻塞都是涉及到IO,由于不同人在不同环境下对同步,异步IO理解不同,本文限定本文所讲述的IO均是Linux环境下的网络IO。基本概念: 在讲述之前,先介绍几个概念。 --用户空间和内核空间 --进程切换原创 2016-05-15 17:05:18 · 696 阅读 · 0 评论