做三盛石材网站的公司,网站网站开发软件,网站首页浮动广告怎么做,发现了一个做字素的网站第七章 进程环境1、main函数#xff1a;int main(int argc, char *argv[]) 2、进程中止#xff1a;正常中止#xff1a;(1)从main返回;(2)调用exit;(3)调用_exit或_Exit;(4)最后一个线程从启动例程返回;(5)最后一个线程调用pthread_exit; 异常中止#xff1a;(6)调用abort;… 第七章 进程环境1、main函数int main(int argc, char *argv[]) 2、进程中止正常中止(1)从main返回;(2)调用exit;(3)调用_exit或_Exit;(4)最后一个线程从启动例程返回;(5)最后一个线程调用pthread_exit; 异常中止(6)调用abort;(7)接到一个信号并中止;(8)最后一个线程对取消请求做出反应。 2.1、exit函数#includestdlib.h void exit(int status); void _Exit(int status); #includeunistd.h void _exit(int status); _exit,_Exit直接进入内核exit则先进行一些清理处理如关闭I/O流等等然后进入内核。 2.2、atexit函数 #includestdlib.h int atexit(void (*func)(void)); 一个进程结束时候调用的函数能够登记32个 exit函数会先调用中止处理函数然后关闭打开流再进入内核。:if expand(%) |browse confirm w|else|confirm w|endif 3、命令行参数调用exec的进程能够将命令行参数传递给新进程。 4、环境表每个程序都会接受到一张环境表。 extern char **environ 按照惯例环境由namevalue这样的字符串组成。 通常用getenv和putenv函数来访问特定的环境变量但是如果要查看整个环境则必须使用environ 5、c程序的存储空间布局正文段初始化数据段非初始化数据段栈堆。 6、共享库略。 7、存储器分配malloc,calloc,realloc。#includestdlib.hvoid *malloc(size_t size); 分配指定字节数存储区初始值不确定void *calloc(size_t nobj, size_t size); 为指定数量且具有长度的的对象分配存储空间void *realloc(void *ptr, size_t newsize); 更改以前分配的长度void free(void *ptr); 8、环境变量取环境变量#includestdlib.h char *getenv(const char *name); 返回与name关联的value指针未找到返回null设置环境变量只会影响当前进程和子进程 #includestdlib.h int putenv(char *str); 取形式为name value的字符串将其放到环境表中 int setenv(const char *name, const char *value, int rewrite); 设置name为valuename已存在若rewrite非0则先删除;若rewrite为0则不删除 int unsetenv(const char *name); 删除name定义 9、setjmp和longjmp函数实现跨越函数的跳转。#includesetjmp.hint setjmp(jmp_buf env);void longjmp(jmp_buf env, int val); 示例程序清单7-5 9.1、自动、寄存器和易失变量讨论关于longjmp后变量是否会回滚为原来值。声明为全局或静态变量的值在执行longjmp保持不变。 程序清单7-6:全局、静态和易失变量不受优化影响他们的值是最近所呈现的值。 9.2、自动变量的潜在问题略。 10、getrlimit和setrlimit函数每个进程都有一组资源限制可以用这两个函数查询和更改。#includesys/resource.hint getrlimit(int resource, struct rlimit *rlptr);int setrlimit(int resource, const struct rlimit *rlptr);struct rlimit{ rlim_t rlim_cur;/* 软限制 */ rlim_t rlim_max;/* 硬限制 */};更改资源限制时的原则1、任何一个进程都可以将一个软限制改为小于等于硬限制的值;2任何一个进程都可以降低硬限制的值但是必须大于等于软限制的值;3只有超级用户可以提升硬限制的值。resource可以取得值有RLIMIT_AS进程可用存储区的最大总长度,RLIMIT_CORE(core文件的最大字节数)RLIMIT_CPU(CPU时间的最大量值)等等。P165 转载于:https://www.cnblogs.com/Just-do-it110/archive/2011/08/03/2126620.html