Linux编程基础 文件操作 进程管理1

目录

一,文件操作

1.stat函数

2.access函数

3.chmod函数

4.truncate函数

 二,进程管理

1.创建进程

2.创建多个进程

3.进程的执行顺序:利用sleep函数,暂缓进程执行


一,文件操作


1.stat函数

    #include <sys/stat.h>
    int stat(const char *path, struct stat *buf);

2.access函数

    #include <unistd.h>
    int access(const char *pathname, int mode);

3.chmod函数

    #include <sys/stat.h>
    int chmod(const char *path, mode_t mode);

4.truncate函数

    #include <sys/stat.h>
    int truncate(const char *path, off_t length);

【案例1】使用stat函数获取文件属性,并输出文件的大小。

输出内容如下:

 二,进程管理


1.创建进程

    #include <unistd.h>
    pid_t fork(void);

【案例 1】使用fork函数创建一个进程,创建成功后父子进程分别执行不同的功能。

 执行结果如下:

 

多次执行test_fork会发现,child process后输出的ppid不等于parent process的pid,而等于1。出现这种情况,是因为父进程先于子进程终止,子进程变成“孤儿进程”,后面由init进程来接收。init的pid=1.


2.创建多个进程

对上面的案例进行修改,进行简单的循环即可:

    int i;
    for(i = 0; i < 2; i ++){
        tempPid = fork();
    }//of for i

 【案例 2】

 在Linux系统中,子进程应由父进程回收,但是当子进程被创建后,它与它的父进程及其它进程共同竞争系统资源,所以父子进程执行的顺序是不确定的,终止的先后顺序也是不确定的。
Shell命令提示符也是1个进程,它需要和新建进程一起竞争CPU。

3.进程的执行顺序:利用sleep函数,暂缓进程执行

【案例 3】

 

 

结果如下

 
 

 

 总结:

进程本身被创建后运行次序是完全随机无序的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值