linux --chdir() 改变当前工作目录函数
linux --目录chdir函数
int chdir(const char *path );
说明:chdir函数用于改变当前工作目录。调用参数是指向目录的指针,调用进程需要有搜索整个目录的权限。每个进程都具有一个当前工作目录。在解析相对目录引用时,该目录是搜索路径的开始之处。如果调用进程更改了目录,则它只对该进程有效,而不能影响调用它的那个进程。在退出程序时,shell还会返回开始时的那个工作目录。
(1) 内核解析参数中的路径名,并确保这个路径名有效。为了做到这一点,就路径名解析而言,内核使用相同的算法。如果路径名无效,它输出错误消息并退出。
(2) 如果路径名有效,内核定位该目录的索引节点,并检查它的文件类型和权限位,确保目标文件是目录以及进程的所有者可以访问该目录(否则改变到新目录就没有用)。
(3) 内核用新目标目录的路径名和/或索引节点替换u区中当前目录路径名和/或它的索引节点号。
错误信息:
EFAULT: path 指向了非法地址
ENAMETOOLNG:路径过长
ENOENT:文件不存在
ENOMEM:内核内存不足
ENOTDIR:给出路径不是目录
EACCES:无访问路径中某个目录的权限
ELOOP:解析路径中太多的符号链接
EIO:发生I/O错误
实例1:
#include <unistd.h>
#include <iostream>
int main(void)
{
long cur_path_len;
char* cur_work_dir;
if((cur_path_len = pathconf(".",_PC_PATH_MAX)) == -1)
{
perror("Couldn`t get currentworking path length");
return 1;
}
std::cout<<"Current path lengthis "<< cur_path_len<<std::endl;
if((cur_work_dir = (char*)malloc(cur_path_len)) == NULL)
{
perror("Couldn't allocate memoryfor the pathname");
return 1;
}
if (getcwd(cur_work_dir,cur_path_len)==NULL)
{
perror("Couldn`t get currentworking directory!");
}
else
{
std::cout<< "Currentworking directory is"<<cur_work_dir<<std::endl;
}
if(chdir("..") == -1)
{
perror("Couldn`t change current working diretory!");
return 1;
}
if ((getcwd(cur_work_dir,cur_path_len)) == NULL)
{
perror("Couldn`t get currentworking directory!");
return 1;
}
std::cout<<"Afterchangedirectory,Current working directory is"<<cur_work_dir<<std::endl;
free(cur_work_dir);
return 0;
}
linux --chdir() 改变当前工作目录函数相关推荐
- Python中的os.chdir()函数:改变当前工作目录
Python中的os.chdir()函数:改变当前工作目录 Python的os模块提供了一系列处理操作系统相关功能的接口.在其中,os.chdir()函数被广泛应用于Python程序中,用于改变当前的 ...
- Python os.chdir() 方法用于改变当前工作目录到指定的路径。
Python os.chdir() 方法 正在上传-重新上传取消 Python OS 文件/目录方法 概述 os.chdir() 方法用于改变当前工作目录到指定的路径. 语法 chdir()方法语法 ...
- linux查看当前的工作目录,Linux-查看当前工作目录(pwd)
Linux中pwd命令来查看"当前工作目录"的完整路径.简单的说,每当你在终端进行操作时,你都会有一个当前工作目录.在不太确定当前位置时,同样可以使用pwd来判定当前目录在文件系统 ...
- linux docker 指定容器工作目录
启动容器时传入-w <work_dir>参数即可,如 docker run -it -w <work_dir> <container_image_name> < ...
- Linux:改变和显示目录或路径
gdb提供了让用户指定.显示.修改源文件搜索路径或目录的命令,以便对程序进行调试. ( 1) directory 命令 该命令可以将给定目录dir添加到源文件搜索路径的开头,并且忽略先前保存的有关源文 ...
- linux中用户 机器名,Python 在linux下获得当前工作目录,主机名,用户名,操作系统平台等信息...
尝试在python下写一个简单的shell,这个是参考实验楼上面的一个python教程.觉得这些api挺好玩的,写下来做一个笔记. #coding:utf-8 import os import soc ...
- 【C】linux下切换工作目录至程序所在目录
1.获取当前程序的绝对路径 /proc/self/exe是一个符号链接,代表当前程序的绝对路径 用readlink读取/proc/self/exe可以获取当前程序的绝对路径 2.从字符串中获取目录 c ...
- 改变工作目录和根目录
改变工作目录和根目录 进程有工作目录和根目录. 工作目录:进程在哪个路径下被运行起来哪个路径就是进程的工作目录(Current Woring Directory, CWD) 根目录:就是"/ ...
- c语言实现新建目录函数,C语言中改变目录的相关操作函数详解
C语言fchdir()函数:改变当前工作目录头文件: #include 定义函数: int fchdir(int fd); 函数说明:fchdir()用来将当前的工作目录改变成以参数fd 所指的文件描 ...
最新文章
- 设置应用图标badge(徽章)
- Vlan 4096的限制原因
- @Autowired注入了dao,为什么还要写getDao(){return userDao}这个方法?有什么作用?
- 【开源】Winform甘特日程控件GanttPlanner V1.0发布
- opengl 教程(21) 聚光灯
- stm32f302 can通讯_福特福克斯发动机无法启动,诊断电脑还通讯不了怎么修?
- 超详细SQLMap使用攻略及技巧分享
- TensorFlow文件操作
- 入门机器学习,开启人工智能大门!
- c ++查找字符串_C ++数组| 查找输出程序| 套装5
- PO_本地一揽子采购协议(流程)
- Apache Kylin 与 ClickHouse 的对比
- 无问西东,哪怕重头来过
- TCP/IP网络知识点总结
- 农历大小月的确定方法
- 以下名字 不能作为c语言标识符的是,(完整版)《C语言程序设计》复习参考答案...
- 关于Provision.apk
- anki怎么设置学习计划_anki如何设置选项(学习任务)?
- pytorch——VGG网络搭建
- ROS2原始数据类型与接口