linux编程
文章平均质量分 66
紫云的博客
just go
展开
-
1 Linux io文件操作总结
1.对于文件操作,虽然都是通过函数调用的方式实现,却还是能分为两类:系统调用和库函数。2.在Linux中,几乎一切都可以看做是文件 。这就意味着,普通程序完全可以像使用文件(普通定义)那样使用磁盘文件、串行口、打印机和其他设备3.库函数调用最终也是通过系统调用实现的。可认为库函数调用是对系统调出于效率考虑而做出的优化。系统调用实际上就是指最底层的原创 2015-05-11 20:26:40 · 531 阅读 · 0 评论 -
3 Linux下多路复用接口
1.select系统调用允许程序同时在多个底层文件描述符上等待输入的到达(或输出的完成)。这意味着终端程序可以阻塞到有事情可做为止。类似的,服务器也可以通过同时在多个打开的套接字上等待请求到来的方法来处理程序。2.select()函数的接口主要是建立在一种叫'fd_set'类型的基础上。它('fd_set') 是一组文件描述符(fd)的集合。由于fd_set类型的长度在不同平台原创 2015-05-11 20:27:39 · 541 阅读 · 0 评论 -
2 Linux 文件锁
查看更多函数参数,请看书1.文件锁包括建议性锁和强制性的锁2.在linux中对文件进行锁操作,可以使用lockf()和fcntl()这两个函数,前者对文件施加建议性锁,后者为两种锁都行。另外fcntl还可以对文件的某一记录上锁。 fcntl使用格式为: int fcntl(int fd,int cmd,struct flock *lock); fd为文件原创 2015-05-11 20:25:18 · 588 阅读 · 0 评论 -
linux 信号屏蔽
#include #include #include #include #include #include /*sigemptyset(&newmask);//获取空屏蔽信号集sigfillset(&newmask);//获取屏蔽了所有信号的屏蔽信号集,除了那两个SIGKILL SIGSTOPsigpending(&pendmask);//获取进程中当前的屏蔽信号集siga原创 2015-07-10 13:16:42 · 2211 阅读 · 0 评论 -
文件描述符和文件表项
同一进程内:多个fd可以指向同一个文件表项。(只有dup才会出现这种情况)多次open出同一个文件,会出现多个文件描述符和多个文件表项,它们的文件偏移量显然是不同步的。多个文件表项可指向同一个i-node节点不同进程内:不同进程的fd可以指向同一个文件表项。(只有父进程fork出子进程时才会出现的情况。)文件描述符表是进程级别的文件表项表是系统级别的原创 2015-11-18 16:26:22 · 2572 阅读 · 0 评论 -
TCP心跳 | TCP keepAlive(转)
应用层对于每个socket采用如下函数来开启 keepalive机制,其参数将采用系统上述配置。setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));注意:keepalive是一个TCP协议包,并不是应用层数据包,意即通过recv等函数从应用层上是无法获得该协议包。可通过抓包工转载 2017-06-27 11:51:52 · 412 阅读 · 0 评论 -
SIGTTOU 和SIGTTIN
#include "stdio.h"#include "unistd.h"int main(int argc, char const *argv[]){ char buf[10]="xxxxxxxxx"; write(STDOUT_FILENO,buf, 5); return 0;}gcc out.c -o out./out & 或者 nohup ./out &用原创 2017-10-29 11:41:15 · 4607 阅读 · 0 评论