linux c编程实现cd目录切换功能(带空格的目录名问题)

本文介绍了在Linux环境下使用C语言编程实现cd命令,特别是如何处理带有空格的目录名。通过示例展示了如何利用chdir()函数成功切换到包含空格的路径,并给出了静态和动态cd的实现思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习linux编程,其中学到shell编程是要求自己写个MyShell

在实现最基本的cd命令时就碰到了麻烦:chdir无法进出带空格的目录名

百度了一些都说chdir()不可进出,但实际上chdir()是可以的,需要把' '换为'\ '

以此为契机,把我今晚的工作:cd命令的实现介绍一遍



现有如下目录结构: /home/yong/Desktop/ /e e /e e e/

bash中要从/home/yong/Desktop切换到/home/yong/Desktop/ /e e /e e e/的一些办法:

cd ./Desktop/' '/'e e '/'e e e'

cd ./Desktop/" "/"e e "/"e e e"

cd ./Desktop/\ /e\ e\ /e\ e\ e/




没错,下面的工作从仿造开始

环境:

ubuntu 12.04 LTS

gcc-ver: i686-linux-gnu    4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 

要实现的功能:

输入:带空格的路径名

内部处理:利用chdir()函数cd到输入的路径

输出:切换路径后的新路径


测试样例1:

输入:

/home/yong/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值