Linux系统编程
文章平均质量分 80
Mr_weng_
这个作者很懒,什么都没留下…
展开
-
Linux系统编程:文件的读取写入
一、read系统调用一旦有了与一个打开文件描述相关连的文件描述符,只要该文件是用O_RDONLY或O_RDWR标志打开的,就可以用read()系统调用从该文件中读取字节 函数原型:ssize_t read(int fd, void *buf, size_t count);参数:fd :想要读的文件的文件描述符buf : 指向内存块的指针,从文件中读取来的字节放到原创 2014-09-06 18:36:25 · 840 阅读 · 0 评论 -
Linux系统编程之管道:匿名管道pipe与命名管道fifo
一、进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。如下图所示。原创 2014-11-21 16:09:01 · 823 阅读 · 0 评论 -
共享内存
共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。原理图如下:原创 2014-08-05 22:58:00 · 595 阅读 · 0 评论 -
Linux网络编程:信号
一、为了理解信号,先从我们最熟悉的场景说起:1. 用户输入命令,在Shell下启动一个前台进程。2. 用户按下Ctrl-C,这个键盘输入产生一个硬件中断。3. 如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断。4. 终端驱动程序将Ctrl-C解释成一个SIGINT信号,记在该进程的PCB中(也可以说发送了一个SIGINT信转载 2014-09-14 16:47:06 · 865 阅读 · 0 评论 -
linux系统编程之信号(二):一些信号发送函数和不同精度的睡眠
一、kill, raise, killpg 函数转载 2014-11-16 00:21:21 · 576 阅读 · 0 评论 -
Linux系统编程:fcntl函数与文件锁
一、fcntl函数功能:操纵文件描述符,改变已打开的文件的属性int fcntl(int fd, int cmd, ... /* arg */ );cmd的取值可以如下:复制文件描述符F_DUPFD (long)设置/获取文件描述符标志F_GETFD (void)F_SETFD (long)设置/获取文件状原创 2014-09-09 22:51:26 · 749 阅读 · 0 评论 -
Linux系统编程:文件的属性
一、读取文件元数据int stat(const char *path, struct stat *buf);int fstat(int fd, struct stat *buf);int lstat(const char *path, struct stat *buf); stat() stats the file pointed to by path an原创 2014-09-09 17:11:11 · 601 阅读 · 0 评论 -
Linux系统编程:目录的操作
一、目录的访问功能说明:打开一个目录原型:DIR* opendir(char *pathname);返回值:打开成功,返回一个目录指针打开失败,则返回NULL原创 2014-09-09 15:08:00 · 486 阅读 · 0 评论 -
Linux系统编程——文件的打开与关闭
#include#include#include#include#include#include#include#include// #define ERR_EXIT(m) (perror(m), exit(EXIT_FAILURE))#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_原创 2014-09-06 17:59:06 · 817 阅读 · 0 评论 -
Linux系统编程之管道:管道的读写规则与Pipe Capacity以及PIPE_BUF
一、当没有数据可读时O_NONBLOCK disable:read调用阻塞,即进程暂停执行,一直等到有数据来到为止。(管道的默认为阻塞)O_NONBLOCK enable:read调用返回-1,errno值为EAGAIN。转载 2014-11-21 16:10:45 · 725 阅读 · 0 评论