Linux c
文章平均质量分 81
NoneSec
聊以记录点滴
展开
-
Linux的ftok源码
Linux的ftok()函数源码linux中的System V IPC中的get函数需要用到ftok()来生成一个key,闲来无事把ftok()函数实现了一下。1. ftok的man手册 NAME ftok - convert a pathname and a project identifier to a System V IPC key SYNOPSIS原创 2015-08-01 23:17:57 · 1460 阅读 · 0 评论 -
linux的同步,异步,阻塞,非阻塞
linux中关于IO操作有原创 2014-08-09 22:41:54 · 3476 阅读 · 0 评论 -
Linux的ioctl和fcntl
Linux的ioctl和fcntl1. 一切都是文件在Linux中一切设备都当作文件,也就是说一切设备都抽象成一个文件,能够提取出来一些共同的特征。文件的一些最常用的操作,如打开、读取、写入等,Linux都提供了单独的系统调用(open、read、write)供程序使用。2. fcntl NAME fcntl - manipulate file descriptor原创 2015-07-15 20:56:56 · 5925 阅读 · 0 评论 -
linux记录锁(建议锁)的几个疑惑
在APUE中的第12节中提到了记录锁原创 2014-08-02 21:33:34 · 2565 阅读 · 0 评论 -
Linux raw socket
Linux raw socket==========================================1. 为什么要详细了解raw socket呢? 其实很早以前就对原始套接字有了一定的了解,那时候还做过一个小的抓包程序,当时以为对原始套接字很熟悉了,但是最近在看nmap的时候被其中的一句话给整迷糊了。 在《Nmap Network Discovery III》的SYN scan章原创 2015-05-10 17:26:54 · 12207 阅读 · 1 评论 -
System V IPC & POSIX IPC(一):消息队列
System V IPC & POSIX IPC(一):消息队列消息队列允许进程之间以消息的形式交换数据,是一种常见的进程之间的通信机制。1. 消息队列的创建System V IPC: int msgget(key_t key, int msgflg); 返回值:message queue identifier on success, or -1 error 参数key:key一般原创 2015-09-23 22:52:21 · 1976 阅读 · 0 评论 -
Linux命令行参数在栈中的分布
Linux命令行参数在栈中的分布 lxg@2015-03-18Linux命令行参数在栈中的分布原创 2015-03-19 13:41:55 · 2456 阅读 · 0 评论 -
linux中的setsid函数
linux中的setsid函数定义 setsid - creates a session and sets the process group ID上面是关于setsid函数的定义,我们一般都只记得setsid会新建一个会话,其实它还有另外一个功能:新建进程组。 2. 前提 在setsid的man手册中首先提到的第一句就是:调用进程不能是进程首进程,也就是说要想setsid调用成功那么调原创 2015-05-08 22:31:55 · 16894 阅读 · 1 评论 -
linux进程的用户ID
linux进程的用户ID1. 前言最近关于”太极越狱的iOS 8.1.3-8.4含有重大安全后门,越狱后导致任意APP可以提权到Root”新闻在安全圈传的比较广,具体的一篇文章见:太极越狱重大安全后门。从这篇分析文章中看到主要就是因为太极越狱修改了setreuid这个系统调用,导致任意APP都可以通过setreuid(0,0)来获取root权限。2. setreuid定义 #include <s原创 2015-07-04 12:28:13 · 1727 阅读 · 0 评论 -
msgsnd的一个小问题
今天写了一个System V消息队列的小例子,定义了一个如下的结构体:#define MSG_SIZE 8192struct request{ long mtype; int client_id; char pathname[MSG_SIZE];};接着我调用msgsnd想把这个结构体发送给server,但是发现报错了: msgsnd error, Invalid原创 2015-08-15 11:30:49 · 2678 阅读 · 1 评论 -
linux crypt函数
linux crypt函数1. crypt定义 #define _XOPEN_SOURCE /* See feature_test_macros(7) */ #include <unistd.h > char *crypt(const char *key, const char *salt);上面是man 3 crypt看到的crypt函数定义。 从定义中看到要想原创 2015-06-28 19:08:03 · 20833 阅读 · 0 评论 -
水平触发,边缘触发
在linux的IO多路复用中有水平触发,边缘触发原创 2014-08-11 17:08:44 · 21117 阅读 · 2 评论 -
linux getrlimit sysconf
linux中getrlimit和sysconf/*************************************************************** > File Name: rlimit_sysconf.c > Author: lxg > Mail: liuxingen@nsfocus.com > Created Time: 2015年06原创 2015-06-22 10:40:49 · 1011 阅读 · 0 评论 -
Linux的system()和popen()差异
Linux的system()和popen()差异1. system()和popen()简介在linux中我们可以通过system()来执行一个shell命令,popen()也是执行shell命令并且通过管道和shell命令进行通信。 system()、popen()给我们处理了fork、exec、waitpid等一系列的处理流程,让我们只需要关注最后的返回结果(函数的返回值)即可。2. syste原创 2015-07-25 22:06:33 · 54495 阅读 · 4 评论 -
waitpid(or wait)和SIGCHILD的关系
我们知道一个子进程在退出的时候会给其父进程发送一个SIGCHILD信号以告诉父进程"我已经退出了",在父进程中为了避免僵尸进程一般都会在SIGCHILD信号处理函数中调用waitpid or wait来回收子进程的退出状态。示例如下:原创 2014-08-02 18:34:30 · 10936 阅读 · 5 评论