系统编程
文章平均质量分 63
姚余
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
消息队列的发送与接收
//消息队列的发送与接收#include #include #include #include #include //不包含此头文件,会出现“警告:隐式声明与内建函数strcpy不兼容”struct msg_buf{int mtype;char data[255];};int main(int argc, char *argv[]){key_t原创 2016-11-03 21:25:22 · 3901 阅读 · 0 评论 -
线程创建与等待
/* ************************************************************************#include #include#include void * thread(void *str){int i;for(i=0;i{sleep(1);printf("this is the t转载 2016-11-06 15:01:03 · 293 阅读 · 0 评论 -
push 和 pop 函数的使用
#include #include #include void *clean(void *arg){printf("cleanup: %s \n",(char *)arg);return (void *)0;}void * thr_fn1(void * arg){printf("chread 1 start \n");pthread_cleanup_pu转载 2016-11-06 16:40:07 · 13581 阅读 · 0 评论 -
怎样获得程序文件名
在linux操作系统中,命令行的第一个参数是程序的路径名,并不是程序的文件名。先上代码在说明。#include #include char *basename(char *full_name){char *p;p=rindex(full_name,'/');//找到路径名中第一个'/'if(p == '\0')p=full_name;elsep++;//转载 2017-04-09 17:22:55 · 527 阅读 · 0 评论 -
改变进程的工作目录
先来说说“工作目录”的概念吧。在程序中所有以文件名引用的文件路径都将被解释为当前工作目录、文件名。比如:fd=open("./tmp/test.txt",O_RDONLY);其实shell解释器解释的每一个命令本质上都是一个程序,基本都存放在/bin目录下,但是没有cd这个程序。改变进程的工作目录函数如下:#include int chdir(char *pathname);原创 2017-03-31 15:58:39 · 1638 阅读 · 0 评论 -
得到当前的工作目录
得到当前的工作目录,方法有很多,比如pwd命令,那我们如果使用程序怎样来获得当前的工作目录呢?可以采用char * getcwd(char * buf,size_t len);函数来实现。第一个参数为:存储当前路径名的huanchengqu转载 2017-03-31 16:42:44 · 409 阅读 · 0 评论 -
怎样写守护进程?
1、脱离控制终端tty,让父进程为init();先处于游离状态,用init()控制,脱离方式:用fork()建立进程,把父进程关闭。2、禁止进程重新打开控制终端3、关闭打开的文件描述符。文件描述符的大小在: cd /proc/sys/fs中,cat file-max得到最大文件描述符。然后for循环关闭。4、改变当前的工作目录进程活动时,其工作目录所在的文件系统不能卸下。一转载 2017-04-02 14:00:56 · 441 阅读 · 0 评论 -
消息队列实现多人聊天
实验现象:先输入你要发送对象的首字母,即代码中宏定义内容。然后输入你要输入的内容。只能本地通信。实现流程:首先打开消息队列,创建进程,子进程用于获得键盘输入的内容,像消息队列发送消息。父进程:按类型从消息队列读取消息,显示读出的信息,打印 * ************************************************************************转载 2017-04-30 17:35:21 · 3348 阅读 · 2 评论
分享