随笔分类 - Unix环境高级编程
摘要:有时候我们使用kill无法杀掉一个进程,但是用kill -9却可以,why? 首先看一下kill的功能,man手册对kill描述如下:KILL(1) Linux User's Manual ...
阅读全文
摘要:这两天测试IGMP遇到一个问题,环境描述如下:我的vlc客户端安装在windows下,该PC有两张网卡,本地连接1接公司网,本地链接2 接路由器。wireshark坚挺本地链接2,以测试路由的IGMP功能。结果vlc加入一个多播组时,wireshark没有都是加入组的包。。原因:报告包都发往本地链接...
阅读全文
摘要:转载自:unix网络编程——ioctl 函数的用法详解[置顶]unix网络编程——ioctl 函数的用法详解分类:2.2. 网络2012-11-26 21:393833人阅读评论(2)收藏举报目录(?)[+]1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进...
阅读全文
摘要:1、应用与原理 在C语言中,有时我们无法给出一个函数参数的列表,比如: int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); 这时我们使用到了可以变参数,也就是使用......
阅读全文
摘要:system函数system函数用方便在一个进程中执行命令行(一行shell命令)。用法如下:#include #include int main(){ printf("Hello\n"); system("sleep 5"); return 0;}在程序中通过system调用了命...
阅读全文
摘要:线程同步 同属于一个进程的不同线程是共享内存的,因而在执行过程中需要考虑数据的一致性。 假设:进程有一变量i=0,线程A执行i++,线程B执行i++,那么最终i的取值是多少呢?似乎一定是i=2;其实不然,如果没有考虑线程同步,i的取值可能是1.我们先考虑自加操作的过程:a,首先将内存中i的值co...
阅读全文
摘要:线程标识线程由线程号进行标识。线程号仅在线程所属的进程环境中有效。也就是说属于不同进程的两个线程可能线程号一样。线程标识用结构体pthread_t tid表示。与线程Id相关的函数如下:比较两个线程ID:#include int pthread_equal(pthread_t tid1,pthrea...
阅读全文
摘要:转载自:sigsetjmp用法如侵犯您的权益,请联系:windeal12@qq.comsigsetjmp用法分类:c/c++linux2012-02-03 12:331252人阅读评论(0)收藏举报signal相关函数:longjmp, siglongjmp, setjmp表头文件:#include...
阅读全文
摘要:如有转载,请注明出处:Windeal专栏首先简述下几个概念的关系:我们通过信号集建立信号屏蔽字,使得信号发生阻塞,被阻塞的信号即未决信号。信号集:信号集:其实就是一系列的信号。用sigset_t set表示。数据类型:sigset_t类似于整型(位数可能超过整型,因而不能用整型表示)。我们一般在si...
阅读全文
摘要:转载注明出处:Windeal学习笔记kil和raisekill()用来向进程或进程组发送信号raise()用来向自身进程发送信号。#include int kill(pid_t pid,int signo);int raise(int signo); ...
阅读全文
摘要:signal函数 signal函数是早起Unix系统的信号接口,早期系统中提供不可靠的信号机制。在后来的分支中,部分系统使用原来的不可靠机制定义signal函数,如Solaris 10 。而更多的系统采用新语义 可靠信号机制,如4.4BSD。 出于signal函数不同系统的不统一性,我们一般使用s...
阅读全文
摘要:进程ID1 进程id是唯一的。(不会有进程id一样的两个进程)2进程id是可复用的,一个进程销毁后,它的id号可以被新的进程使用。但是Unix采用了延迟复用的算法,也就是进程 销毁后它的id不会立即被使用。3 进程id为0的是调度进程。这是系统进程,是内核的一部分。4 进程id为1的是init进程...
阅读全文
摘要:用户ID的基本概念在Unix系统中,很多操作涉及到权限问题,这些权限涉及到用户ID和组ID的概念。 组ID和用户ID的原理和相关内容是类似的。下面介绍用户ID。 我们常见见到三种关于用户ID的概念。 实际用户ID:real user ID (RUID) 有效用户ID:effecti...
阅读全文
摘要:程序的启动与退出过程先上图,了解进程运行的机制。 内核首先调用exec,运行C启动进程,C启动进程会调用main()函数。 其他所有函数都是由main函数直接或间接调用的。 从Figure7.2可以看出,内核与用户进程的交互,直接使用的只有三个函数:exec、_exit、_Exit exec是...
阅读全文
摘要:Unix提供的最基本的时间服务室日历时间(纪元时间),也就是计算1970年1月1日0时0分0秒到当前的秒数。该秒数用time_t表示。typedef long time_t; /* 时间值time_t 为长整型的别名*/1、获取/设置时间1.1 time和time_t函数time...
阅读全文

浙公网安备 33010602011771号