`
jakielong
  • 浏览: 228445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <signal.h> #include <syslog.h> void main(int argc, char ** argv){ time_t now; int childpid, fd, fdtablesize; int error, in, out; /*忽略终端 I/O信号,STOP信 ...
守护进程守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、Web服务http等。同时,守护进程完成许多系统任务。比如,作业规划进程crond、打印进程lqd等。这里主要说明守护进程的进程结构,以及如何编写守护进程程序。因为守护进程没有控制终端,所以我们还要介绍在守护进程运行时错误输出的方法。守护进程及其特性守护进程最重要的特性是后台运行。在这一点上,DOS下的常驻内存程序TSR与之相似。其次,守护进程必须与其运行前 ...
1.fork、exec和exit对IPC对象的影响 IPC类型 fork exec _exit         管道和FIFO 子进程取得父进程的所有打开着的描述字的拷贝 所有打开的描述字继续打开着,除非已设置描述字的FD_CLOEXEC位 关闭所有打开着的描述字,最后一个关闭时删除管道或FIFO中残留的所有数据 Posix消息队列 子进程取得父进程的所有打开着的消息队列描述字的拷贝 关闭所有打开着的消息队列描述字 关闭所有打开着的消息队列描述字 System V消息队列 没有效果 没有效果 没有效果 Posix互斥锁、条件 ...
Linux下C语言的多线程编程学习一、首先,简单了解一下多线程,从耳熟能详的fork()、pthread中理点头绪出来,然后自己写一个简单的来增加一下信心。 1、Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程 ...
typedef struct _Node { int data_len; // 存储在节点中的数据长度 char *data; // 存储在节点中的数据 struct _Node *next; // 队列中的下一个节点地址 }NODE; typedef struct _Queue { NODE *head; // 队列的头部 NODE *end; // 队列的尾部 int count; // 队列 ...
http://www.gelato.unsw.edu.au/~dsw/public-files/kernel-docs/kernel-api/index.htmlhttp://lwn.net/Kernel/LDD3/http://blog.chinaunix.net/u1/58901/showart_1934008.htmlhttp://www.deansys.com/doc/ldd3/ch06.html#UsingtheioctlArgument.sect2http://www.jollen.org/LinuxDeviceDriver/http://hg.opensolaris.org/sc/ ...
今天在Linux上调一个存包队列,当用gcc编译时,出现error:expected '=',',',';','asm'or'_attribute_'等错误,这个错误是出现在两个函数上,这两个函数的返回类型是bool,当我把bool类型改为void,再进行编译时,错误就没有了,今天先把这个记下,以备以后需要时用到!
在如今众多的黑客技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览 ...
#include <pthread.h> #include <stdio.h> #include <sys/time.h> #include <string.h> #include <unistd.h> #define MAX 10 pthread_t thread[2]; pthread_mutex_t mut; int number=0, i; void *thread1(void *) { printf ("thread1 : I'm thread 1\n"); ...
gcc和g++都是GNU(组织)的一个编译器。   误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。 误区二:gcc不会定义__ ...
在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以 写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!      如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知识等),我感觉这篇文章应该是比较全面地谈了一下malloc()和free().这篇文章由浅入深(不见得有多深)分三个部分 ...
 通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。 #include <pthread.h> #include <stdio.h> #include <sys/time.h> #include <string.h> #include <unistd.h> #define MAX 10 pthread_t thread[2]; pthread_mutex_t mut; int number=0, i; void *thread1(void *) { ...
Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径。我们可以通过AssetManager类来访问这些文件。   比如我要读取/assets/a.txt   AssetManager am = getAssets(); InputStream file = am.open("introduction.txt"); BufferedReader br = new Buffere ...
一,重要性AndroidManifest.xml是Android应用程序中最重要的文件之一。它是Android程序的全局配置文件,是每个android程序中必须的文件。它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件(acti ...
Android中的Content provider机制可支持在多个应用中存储和读取数据。这也是跨应用共享数据的唯一方式。在android系统中,没有一个公共的内存区域,供多个应用共享存储数据。 Android提供了一些主要数据类型的Content provider,比如音频、视频、图片和私人通讯录等。可在android.provider包下面找到一些android提供的Content provider。可以获得这些Content provider,查询它们包含的数据,当然前提是已获得适当的读取权限。 如果想公开自己的数据,那么可有两种办法:   创建自己的Content provide ...
Global site tag (gtag.js) - Google Analytics