文件操作
fcntl-> 复制文件描述符/取文件状态/文件锁
文件一系列函数-> access/chmod/truncate/...

目录操作
相关函数:mkdir/rmdir/telldir/chdir/getcwd/...
重点:opendir/readdir

进程:
  1 察看进程的命令ps,两种用法:
    Unix -> ps -ef (变相支持ps -aux,不直接支持)
      可以用/usr/ucb/ps -aux
    Linux -> ps -aux/ps -ef
   杀进程,kill -9 进程id (必定杀死)
  常见进程状态:
    S 休眠状态
    O 可运行状态
    R 运行状态
    T 挂起状态
    Z 僵尸进程(已经结束但没有回收资源)
  如果一个进程a启动了另外一个进程b,a叫父进程,b叫子进程。

  2 父子进程的关系
   2.1 父进程启动子进程后,父子进程同时运行。如果子进程先结束,会自动给父进程发信号,父进程回收子进程的相关资源。
   2.2 如果父进程先结束,子进程变成孤儿进程。子进程会认init进程(1)为新的父进程。init也叫孤儿院
   2.3 如果父进程没有收到子进程结束时发送的信号或没有及时处理该信号,子进程虽然已经结束,但资源没有回收,形成 僵尸进程。

   3 系统用pid管理进程,每个进程都有当时唯一的进程id。已经结束的进程,它的pid过一段时间后可以重复使用(延时使用)。
      取进程id的函数:
        getpid()   取当前进程id
        getppid()  取父进程id
        getuid()   取实际用户id
        geteuid()  取有效用户id
    注:getuid()其实也是返回有效用户的id。
    Linux/Unix中可以用su 切换用户。真实用户是登陆时的用户,有效用户就是当前生效的用户。

  4 创建进程函数fork()
     fork()通过复制父进程创建子进程。
     fork()时,子进程会复制父进程的堆/栈/全局,但共享代码区(子进程不会重新执行fork之前的代码)。
     fork()之前的代码只有父进程执行一次,fork()之后的代码父子进程分别执行一次。fork()函数代码会返回2次,父进程返回子进程的id,子进程返回0。
     fork()之后父子进程谁先执行由操作系统算法决定,无法确保谁先执行。
     fork()只复制文件描述符,不复制文件表。但fork之后定义的文件描述符会有两个文件表。

   创建子进程的两种方式:
     fork - 父进程的自我复制,可以一个代码段两个进程执行。
     vfork - 父进程的自我否定(不复制任何东西),启动一个全新的子进程执行全新的代码。
     fork不知道父子进程谁先运行,vfork一定是 子进程先运行。

  进程的结束:
    正常结束 - main函数执行return,exit,_exit/_Exit
    非正常结束 - 信号
     exit和_exit/_Exit的区别:
     exit不是马上退出,会检测是否有其他函数需要执行。用atexit注册的函数会被执行。
     _exit/_Exit在Unix中是一回事,会立即退出。

unix c 06的更多相关文章

  1. UNIX系统的显示时间何时会到达尽头

    本文分为三个小块: 一.UNIX系统中时间的存储形式: 二. time_t 的最大值是多少: 三. 将time_t 的最大值转化为真实世界的时间: #---------------------# # ...

  2. UNIX Time 时间戳 与 北京时间 相互转换

    typedef struct t_xtime { int year; int month; int day; int hour; int minute; int second; } _xtime ; ...

  3. springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

    Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...

  4. js unix时间戳转换

    一.unix时间戳转普通时间: var unixtime=1358932051; var unixTimestamp = new Date(unixtime* 1000); commonTime = ...

  5. Unix command 积累

    UNIX is a multi-user multitasking-optimized operating system that can run on various hardware platfo ...

  6. Oracle DBA 的常用Unix参考手册(二)

    9.AIX下显示CPU数量    # lsdev -C|grep Process|wc -l10.Solaris下显示CPU数量# psrinfo -v|grep "Status of pr ...

  7. Oracle DBA 的常用Unix参考手册(一)

    作为一名Oracle DBA,在所难免要接触Unix,但是Unix本身又是极其复杂的,想要深刻掌握同样很不容易.那么到底我们该怎么入手呢?Donald K Burleson 的<Unix for ...

  8. Unix System Overview

    一.Unix 体系结构 由上图可以看出,内核居于最里层,Shell,Libary routines,以及Application通过系统调用(system calls)访问内核提供的功能.注意系统调用与 ...

  9. Linux/Unix下设置定时任务

    Unix系统提供了cron和at命令,使系统和用户可以定时运行一定的程序,而不需手工启动. 使用cron用于周期性的执行一个命令,为了使用它,必须编辑crontab文件.系统缺省的/etc/cront ...

随机推荐

  1. android 通过shape设置圆形按钮

    Android中常常使用shape来定义控件的一些显示属性来美化UI: shape的常用属性有: (1)solid:填充,设置填充的颜色: (2)stroke:描边,设置边界的宽度.颜色等: (3)c ...

  2. STL中erase的小心使用

    先看如下一道改错题: #include<iostream> #include<vector> using namespace std; void print(vector< ...

  3. 40 个超棒的免费 Bootstrap HTML5 网站模板

    Bootstrap 是快速开发Web应用程序的前端工具包.它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等. 目前 ...

  4. 【活动】明星衣橱CEO林清华聊创业 | 猎云网

    [活动]明星衣橱CEO林清华聊创业 | 猎云网 [活动]明星衣橱CEO林清华聊创业

  5. sublime text 2相关

    官网:http://www.sublimetext.com/2 安装包控制(Package Control) 打开Sublime Text 2,按快捷键 ctrl+` 或者点击 Tools → Com ...

  6. hdu 1874 畅通工程续(最短路)

    最短路问题! 最简单的最短路问题! 恩! #include<stdio.h> #define MAX 1000000 int map[500][500]; int n,m,start,en ...

  7. python高级编程:有用的设计模式1

    # -*- coding: utf-8 -*-__author__ = 'Administrator'#python高级编程:有用的设计模式#设计械是可复用的,某种程序上它对软件设计中觉问题提供的语言 ...

  8. AJAX上传文件

    function up_files() { var fileSelect = document.getElementById('file-select'); var files = fileSelec ...

  9. 网络直播电视之M3U8解析篇 (下)

    在上一篇文章中讲述了网络直播电视的M3U8解析和当中的keyword段.本章我将对我遇见到的不同数据源的M3U8文件进行列举和分析. 第一种:ts片段地址为文件名,下载地址为:http:\\www.X ...

  10. CentOS7 安装LNMP(Linux+Nginx+MySQL+PHP)

    由于工作须要,须要学习php,本来想安装lamp的可是考虑到如今nginxserver有良好的性能且应用广泛. 这里我决定搭建Linux(CentOS7+Nginx+MySQL+PHP)下的webse ...