高级Linux程序设计第三章:进程
每个进程都有一个唯一的进程号。 每个进程都有一个父进程。 系统中的进程以树的形式组织,init进程(进程号为1)作为根。 进程0是调度进程,没有程序与之对应,是内核的一部分。 进程1是init进程,是在系统启动的阶段由内核启动的,对应/sbin/init程序,是普通的用户进程。 程序中可以通过getpid()得到进程号,通过getppid()得到父进程的进程号。 #include #include int main () { printf (“The process ID is %d\n”, (int) getpid ()); printf (“The parent process ID is %d\n”, (int) getppid ()); return 0; } 通过ps命令可以得到系统中运行的所有进程。 通过kill命令可以杀掉某个进程。 1、创建进程 1.1、system函数 system函数提供了一种在程序中运行一个命令的简单方法。 #include int main () { int return_value; return_value = system (“ls -l /”); return return_value; } 1.2、fork及exec函数 当程序调用fork的时候,则一个完全复制的子程序被创建。 父进程将从fork被调用的地方继续执行下去。 子进程也是从相同的地方运行下去。 父进程中fork函数的返回值是子进程的进程号。 子进程中fork函数的返回值是零。 #include #include #include int main () { pid_t child_pid; printf (“the main program process ID is %d\n”, (int) getpid ()); child_pid = fork (); if (child_pid != 0) { printf (“this is the parent process, with id %d\n”, (int) getpid ());
相关文档:
1、#locale (locale命令用于查看使用语言详细信息)
2、#export LC_ALL=POSIX (export命令导出修改LC_ALL语言选项)
3、redhat-config-network 、 netconfig配置网络服务
4、重启 init 6 或者 shutdown -r now
5、shutdown -h 关闭系统
6、vi编辑文档后,输入shift + :后输入q,回车退出,输入wq保存退出。
7、增加用户 ......
网络编程和其他编程最大的区别就是:网络编程由两部分组成,客户端和服务器端。先启动服务器端、等待客户端的程序运行并建立连接;一般来说,是服务器端的程序在一个端口上监听,等待有一个客户端的程序发来请求。
网络编程还要引入一个概念:协议。在网络 ......
Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查 ......
首先介绍下pthread_cond_t。 在Linux下称之为状态变量,与之相关的有下面几个API:
int pthread_cond_init (pthread_cond_t *COND,pthread_condattr_t *cond_ATTR);
int pthread_cond_signal (pthread_cond_t *COND);
int pthread_cond_broadcast (pthread_con ......
文章来源:http://blog.chinaunix.net/u3/104073/showart_2081838.html
实战Linux Bluetooth编程(一) 协议栈概述
Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记
了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的
Blu ......