#api函数

进程控制之system函数

ISOC定义了system函数,但是其操作对系统的依赖性很强。POSIX.1包括了system接口,它扩展了ISOC定义,以描述system在POSIX.1环境中的运行行为。#include<stdlib.h>intsystem(constchar*cmdstring);如果cmdstring是一个空指针,...
代码星球 ·2021-02-21

进程控制之exec函数

用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段。有6种不同的ex...
代码星球 ·2021-02-21

进程控制之wait3和wait4函数

大多数UNIX系统实现提供了另外两个函数wait3和wait4。它们提供的功能比POSIX.1函数wait、waitpid和waitid所提供的功能要多一个,这与附加参数rusage有关。该参数要求内核返回由终止进程及其所有子进程使用的资源汇总。#include<sys/types.h>#include&l...

进程控制之waitid函数

SingleUNIXSpecification的XSI扩展包括了另一个取进程终止状态的函数——waitid,此函数类似于waitpid,但提供了更多的灵活性。#include<sys/wait.h>intwaitid(idtype_tidtype,id_tid,siginfo_t*infop,intopti...
代码星球 ·2021-02-21

进程控制之wait和waitpid函数

当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号。因为子进程终止是个异步事件(这可以在父进程运行的任何时候发生),所以这种信号也是内核向父进程发的异步通知。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数(信号处理程序)。对于这种信号的系统默认动作是忽略它)。调用wait或wait...

进程控制之exit函数

进程有下面5种正常终止方式:(1)在main函数内执行return语句。这等效于调用exit。(2)调用exit函数。此函数有ISOC定义,其操作包括调用各终止处理程序(终止处理程序在调用atexit函数时登记),然后关闭所有标准I/O流等。(3)调用_exit或_Exit函数。ISOC定义_Exit,其目的是为进程提...
代码星球 ·2021-02-21

进程控制之vfork函数

vfork函数的调用序列和返回值与fork相同,但两者的语义不同。vfork用于创建一个新进程,而新进程的目的是exec一个新程序。vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec(或exit),于是也就不会存访该地址空间。相反,在子进程调用exec...
代码星球 ·2021-02-21

进程控制之fork函数

一个现有进程可以调用fork函数创建一个新进程。#include<unistd.h>pid_tfork(void);返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1由fork创建的新进程被称为子进程(childprocess)。fork函数被调用一次,但返回两次。两次返回的唯一区别是子进程的返回...
代码星球 ·2021-02-21

进程环境之getrlimit和setrlimit函数

每个进程都有一组资源限制,其中一些可以用getrlimit和setrlimit函数查询和更改。#include<sys/resource.h>intgetrlimit(intresource,structrlimit*rlptr);intsetrlimit(intresource,conststructrl...

进程环境之setjmp和longjmp函数

在C中,goto语句是不能跨越函数的,而执行这样跳转功能的是函数setjmp和longjmp。这两个函数对于处理发生在深层嵌套函数调用中的出错情况是非常有用的。setjmp和longjmp函数也称为非局部goto,非局部指的是,这不是由普通C语言goto语句在一个函数内实施的跳转,而是在栈上跳过若干调用帧,返回到当前函...

进程环境之main函数

C程序总是从main函数开始执行。main函数的原型是:intmain(intargc,char*argv[]);其中,argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组。当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的起始地...
代码星球 ·2021-02-21

文件和目录之chdir、fchdir和getcwd函数

每个进程都有一个当前工作目录,此目录是搜索所有相对路径名的起点(不以斜杠开始的路径名为相对路径名)。当用户登录到UNIX系统时,其当前工作目录通常是口令文件(/etc/passwd)中该用户登录项的第6个字段——用户的起始目录(homedirectory)。当前工作目录是进程的一个属性,起始目录则是登录名的一个属性。进...

文件和目录之mkdir和rmdir函数

用mkdir函数创建目录,用rmdir函数删除目录。#include<sys/stat.h>intmkdir(constchar*pathname,mode_tmode);返回值:若成功则返回0,若出错则返回-1此函数创建一个新的空目录。其中,.和..目录项是自动创建的。所指定的文件访问权限mode由进程的...

文件和目录之utime函数

一个文件的访问和修改时间可以用utime函数更改。#include<utime.h>intutime(constchar*pathname,conststructutimbuf*times);返回值:若成功则返回0,若出错则返回-1此函数所使用的数据结构是:structutimbuf{time_tactim...
代码星球 ·2021-02-21

文件和目录之symlink和readlink函数

symlink函数创建一个符号链接。#include<unistd.h>intsymlink(constchar*actualpath,constchar*sympath);返回值:若成功则返回0,若出错则返回-1该函数创建了一个指向actualpath的新目录项sympath,在创建此符号链接时,并不要求...
首页上一页...1617181920...下一页尾页