2013年7月31日

摘要: 先看看MSDN的解釋:stat(): Get status information on a file.Parameters: path: pointer to a string containing the path of existing file. buffer: pointer to a structure that stores results.int _stat( const char *path, struct _stat *buffer );結構體 _stat 的定义在 sys\stat.h 裏面,具體內容可自行查看,包括主要的字段為:st_gidNumeric ide... 阅读全文
posted @ 2013-07-31 15:56 小葫芦藤 阅读(756) 评论(0) 推荐(0) 编辑
摘要: stat,lstat,fstat1 函数都是获取文件(普通文件,目录,管道,socket,字符,块()的属性。函数原型#include int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。int fstat(int filedes, struct stat *buf);通过文件描述符获取文件对应的属性。int lstat(const char *restrict pathname, struct stat *restrict buf);连接文件描述命,获取文件属性。2 文件对应的属 阅读全文
posted @ 2013-07-31 15:24 小葫芦藤 阅读(315) 评论(0) 推荐(0) 编辑
摘要: source insight快捷键及使用技巧 退出程序 : Alt+F4重画屏幕 : Ctrl+Alt+Space完成语法 : Ctrl+E复制一行 : Ctrl+K恰好复制该位置右边的该行的字符 : Ctrl+Shift+K复制到剪贴板 : Ctrl+Del剪切一行 : Ctrl+U剪切该位置右边的该行的字符 : Ctrl+;剪切到剪贴板 : Ctrl+Shift+X剪切一个字 : Ctrl+,左边缩进 : F9右边缩进 : F10插入一行 : Ctrl+I插入新行 : Ctrl+Enter加入一行 : Ctrl+J从剪切板粘贴 : Ctrl+Ins粘贴一行 : Ctrl+P重复上一个动作 阅读全文
posted @ 2013-07-31 09:42 小葫芦藤 阅读(310) 评论(0) 推荐(0) 编辑

2013年7月24日

摘要: # include int poll (struct pollfd *fds, unsigned int nfds, int timeout);和select()不一样,poll()没有使用低效的三个基于位的文件描述符set,而是采用了一个单独的结构体pollfd数组,由fds指针指向这个组。pollfd结构体定义如下:#include struct pollfd {int fd; /* file descriptor */short events; /* requested events to watch */short revents; /* returned events witnes. 阅读全文
posted @ 2013-07-24 15:50 小葫芦藤 阅读(280) 评论(0) 推荐(0) 编辑

2013年7月23日

摘要: 信号量的值与相应资源的使用情况有关,当它的值大于 0 时,表示当前可用的资源数的数量;当它的值小于 0 时,其绝对值表示等待使用该资源的进程个数。信号量的值仅能由 PV 操作来改变。在 Linux 下,PV 操作通过调用semop函数来实现。该函数定义在头文件 sys/sem.h中,原型如下:int semop(int semid,struct sembuf *sops,size_t nsops);函数的参数 semid 为信号量集的标识符;参数 sops 指向进行操作的结构体数组的首地址;参数 nsops 指出将要进行操作的信号的个数。semop函数调用成功返回 0,失败返回 -1。semo 阅读全文
posted @ 2013-07-23 14:22 小葫芦藤 阅读(15352) 评论(0) 推荐(1) 编辑

2013年7月22日

摘要: Start PageIndexHistoryLast Changemlock家族:锁定物理内存系统调用 mlock 家族允许程序在物理内存上锁住它的部分或全部地址空间。这将阻止Linux 将这个内存页调度到交换空间(swap space),即使该程序已有一段时间没有访问这段空间。一个严格时间相关的程序可能会希望锁住物理内存,因为内存页面调出调入的时间延迟可能太长或过于不可预知。安全性要求较高的应用程序可能希望防止敏感数据被换出到交换文件中,因为这样在程序结束后,攻击者可能从交换文件中恢复出这些数据。锁定一个内存区间只需简单将指向区间开始的指针及区间长度作为参数调用 mlock。Linux 分配 阅读全文
posted @ 2013-07-22 11:36 小葫芦藤 阅读(1318) 评论(0) 推荐(0) 编辑

2013年7月19日

摘要: fscanf(格式化字符串输入)相关函数scanf,sscanf表头文件#include定义函数int fscanf(FILE * stream ,const char*format,....);函数说明fscanf()会自参数stream的文件流中读取字符串,再根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结构存于对应的参数内。返回值成功则返回参数数目,失败则返回-1,错误原因存于errno中。附加说明范例#includemain(){int i;unsigned int j;char s[5];fscanf(stdin,”%d %x %5[a-z] 阅读全文
posted @ 2013-07-19 16:01 小葫芦藤 阅读(1148) 评论(0) 推荐(0) 编辑
摘要: 以struct和union为线索来观察信号量第一部分 semid_ds ipc_perm内核为每个信号量集合维护一个结构体semid_ds:struct semid_ds { struct ipc_perm sem_perm; unsigned short sem_nsems; /* # of semaphore in set */ time_t sem_otime; /* last-semop() time */ time_t sem_ctime; /* last-change time */ …};semid_ds的一个结构体成员ipc_perm是XSI IPC为每一个IPC结构设置的, 阅读全文
posted @ 2013-07-19 15:58 小葫芦藤 阅读(613) 评论(0) 推荐(0) 编辑
摘要: semget() 可以使用系统调用semget()创建一个新的信号量集,或者存取一个已经存在的信号量集:系统调用:semget();原型:intsemget(key_t key,int nsems,int semflg);返回值:如果成功,则返回信号量集的IPC标识符。如果失败,则返回-1:errno=EACCESS(没有权限)EEXIST(信号量集已经存在,无法创建)EIDRM(信号量集已经删除)ENOENT(信号量集不存在,同时没有使用IPC_CREAT)ENOMEM(没有足够的内存创建新的信号量集)ENOSPC(超出限制) 系统调用semget()的第一个参数是关键字值(一般是由系统调用 阅读全文
posted @ 2013-07-19 15:18 小葫芦藤 阅读(1311) 评论(0) 推荐(0) 编辑
摘要: #include #include int shmget(key_t key, size_t size, int shmflg);key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_PRIVATE。 当key的取值为IPC_PRIVATE,则函数shmget()将创建一块新的共享内存;如果key的取值为0,而参数shmflg中设置了IPC_PRIVATE这个标志,则同样将创建一块新的共享内存。 在IPC的通信模式下,不管是使用消息队列还是共享内存,甚至是信号量,每个IPC的对象(o... 阅读全文
posted @ 2013-07-19 14:50 小葫芦藤 阅读(442) 评论(0) 推荐(0) 编辑

导航