linux之chdir函数解析

[lingyun@localhost chdir]$ ls
chdir.c
[lingyun@localhost chdir]$ cat chdir.c 
/*********************************************************************************
 *      Copyright:  (C) 2013 fulinux<fulinux@sina.com> 
 *                  All rights reserved.
 *
 *       Filename:  chdir.c
 *    Description:  This file 
 *                 
 *        Version:  1.0.0(08/06/2013~)
 *         Author:  fulinux <fulinux@sina.com>
 *      ChangeLog:  1, Release initial version on "08/06/2013 03:35:13 PM"
 *                 
 ********************************************************************************/


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>


int main(void)
{
    if(chdir("/tmp") < 0)
    {
        perror("chdir");
        exit(1);
    }
    printf("chdir to /tmp successded\n");
    exit(0);
}
[lingyun@localhost chdir]$ gcc chdir.c 
[lingyun@localhost chdir]$ pwd
/home/lingyun/apue/chdir
[lingyun@localhost chdir]$ ./a.out 
chdir to /tmp successded
[lingyun@localhost chdir]$ pwd
/home/lingyun/apue/chdir

[lingyun@localhost chdir]$ 

执行./a.out程序的shell的当前工作目录没有变,其原因是创建了一个子进程并由该子程执行./a.out程序。记得有一次我把文件系统整个都删了,什么命令都不能执行,但是cd命令可以,apue上说cd命令是直接包含在shell程序中的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fulinux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值