gpt4 book ai didi

在本地文件夹上创建目录

转载 作者:行者123 更新时间:2023-11-30 17:44:41 25 4
gpt4 key购买 nike

我有一个在 Ubuntu 中的 ./Desktop/TestFolder0 上运行的程序。

当程序在 TestFolder0 内运行时,我想创建一个名为 Outputs 的文件夹,并在该文件夹内保存一个归档的 Output.txt。所以它看起来像:

./Desktop/TestFolder0/Outputs

我想以这样的方式编写代码:如果我将程序移动到 TestFolderN,新文件夹和 Output.txt 将始终保存在那里。

我正在查看Creating a new directory in C这教会了我关于 mkdir 的知识。我仍然不完全知道如何使用它,例如我需要为新目录提供一个路径,但我不知道如何指向我在文件夹层次结构中的位置。我还需要授予 mkdir 权限以允许打开文件夹等。

请帮忙

最佳答案

对您来说好消息是,如果您没有为获取文件地址的函数(例如 fopenmkdir)提供绝对路径,它们总是假设该路径是相对于当前地址。因此,如果你写:

mkdir("Outputs");

它始终会在您运行代码的Outputs目录中创建。如果您想创建可执行文件本身所在的目录(而不是运行它的目录),您可以看到 this question了解如何检索正在运行的可执行文件的位置。简而言之,在linux中,您可以 read /proc/self/exe 指向什么。 (不过你很可能想要第一个)

<小时/>

关于权限,您可以简单地给它0777(八进制111111111),这意味着所有权限可用。 mkdir(实际上是它下面的系统调用)会自动删除你没有的权限(所以你不能授予你自己没有的目录权限)。

如果你不知道这些位代表什么,你可以阅读in wikipedia 。为了完整起见,我将做一个简短的解释。传统 Unix 系统中的权限(执行 ls -l 时返回的权限)的形式为:

drwxrwxrwx
|\_/\_/\_/
| | | |
T O G R

T 告诉文件的类型,例如 d 表示目录。 O 是文件所有者的三个权限的集合,G 是类似的权限,但针对文件所有者所属的组,R code> 是其他权限(抱歉,最初的 O 已被使用;)。每组权限(rwx)选择读、写和执行权限。您需要对目录具有执行权限才能导航到该目录。

所以,如果你想拥有一个不被其他人隐藏的目录,你可以将权限设置为0755。私有(private)目录可以有权限0750, super 私有(private)目录可以有权限0700。所有用户之间的共享目录可以拥有权限0777。

关于在本地文件夹上创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19884830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com