C语言创建目录(文件夹)之mkdir

这篇具有很好参考价值的文章主要介绍了C语言创建目录(文件夹)之mkdir。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、mkdir

说明:创建目录。
头文件库:

#include <sys/stat.h>
#include <sys/types.h>

函数原型:

int mkdir(const char *pathname, mode_t mode);

mode方式:可多个权限相或,如0755表示S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH

权限 说明
S_IRWXU 00700权限,代表该文件所有者拥有读,写和执行操作的权限
S_IRUSR(S_IREAD) 00400权限,代表该文件所有者拥有可读的权限
S_IWUSR(S_IWRITE) 00200权限,代表该文件所有者拥有可写的权限
S_IXUSR(S_IEXEC) 00100权限,代表该文件所有者拥有执行的权限
S_IRWXG 00070权限,代表该文件用户组拥有读,写和执行操作的权限
S_IRGRP 00040权限,代表该文件用户组拥有可读的权限
S_IWGRP 00020权限,代表该文件用户组拥有可写的权限
S_IXGRP 00010权限,代表该文件用户组拥有执行的权限
S_IRWXO 00007权限,代表其他用户拥有读,写和执行操作的权限
S_IROTH 00004权限,代表其他用户拥有可读的权限
S_IWOTH 00002权限,代表其他用户拥有可写的权限
S_IXOTH 00001权限,代表其他用户拥有执行的权限

示例代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>

int checkMkdir(char *sPath);

int main()
{
	char sPath[256 + 1];

	memset(sPath, 0x00, sizeof(sPath));

	sprintf(sPath, "%s/%s", getenv("HOME"), "test/test/");
	
	if( 0 != checkMkdir(sPath))
	{
		printf("创建文件失败\n");
	}
	else
	{
		printf("创建文件成功\n");
	}

	return 0;
}



/*
 * 函数名称 checkMkdir
 * 函数功能 创建文件
 * 函数描述 传入一个文件所在的绝对路径 创建文件
 * 入    参 sPath 文件绝对路径
 * 返    回 SUCCESS return 0
 *          FAIL    return 非0
*/
int checkMkdir(char *sPath)
{
	int iRet = 0;                         /* 函数返回值 */
	char sFilePath[256 + 1];              /* 创建文件路径 */
	char sPathTmp[256 + 1];               /* 临时文件路径 */
	char *pDir = NULL;

	struct stat stFileStat;


	memset(sFilePath, 0x00, sizeof(sFilePath));
	memset(sPathTmp, 0x00, sizeof(sPathTmp));
	memset(&stFileStat, 0x00, sizeof(stFileStat));

	memcpy(sFilePath, sPath, sizeof(sFilePath));

	
	pDir = strtok(sFilePath, "/");
	strcat(sPathTmp, "/");
	strcat(sPathTmp, pDir);
	strcat(sPathTmp, "/");

	memset(&stFileStat, 0x00, sizeof(stFileStat));
	stat(sPathTmp, &stFileStat);

	if( !S_ISDIR(stFileStat.st_mode) )
	{
		iRet = mkdir(sPathTmp, S_IWUSR|S_IRUSR|S_IXUSR);
		if( -1 == iRet )
		{
			printf("mkdir path [%s] error [%ld]\n", sPathTmp, iRet);
			return iRet;
		
		}	
	}

	while( NULL != ( pDir=strtok(NULL, "/") ) )
	{
		strcat(sPathTmp, pDir);
		strcat(sPathTmp, "/");

		memset(&stFileStat, 0x00, sizeof(stFileStat));
		stat(sPathTmp, &stFileStat);

		if( !S_ISDIR(stFileStat.st_mode) )
		{
			iRet = mkdir(sPathTmp, S_IWUSR|S_IRUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP);
			if( -1 == iRet )
			{
				printf("mkdir path [%s] error [%ld]\n", sPathTmp, iRet);
				return iRet;
		
			}
		}
	}

	return iRet;
}

运行结果
C语言创建目录(文件夹)之mkdir,c语言,c语言,linux文章来源地址https://www.toymoban.com/news/detail-645080.html

到了这里,关于C语言创建目录(文件夹)之mkdir的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言读取文件夹一级子目录的指定类型文件

    参考链接: C语言读取指定文件夹下的所有文件(各种信息)_c语言读取文件夹下的所有文件-CSDN博客  参考以上文案,做成了几个函数,用于读取任意文件夹下的指定后缀的文件。

    2024年02月21日
    浏览(16)
  • linux 再文件夹目录下,批量替换文件名、文件内容字符串

    基本使用命令 具体使用命令方法 1.替换文件内容 搜索当前目录下所有.DTA文件,并将文件中字符串\\\"string1\\\",替换为\\\"string2\\\" 2.替换文件名 搜索当前目录下所有.DTA文件,并将文件名中字符串\\\"string1\\\"替换为\\\"string2\\\". 3.批量替换文件内容 该目录及子目录下所有文件,将文件中所有的字符

    2024年02月16日
    浏览(16)
  • linux 查看文件夹下的文件个数(当前目录的文件数)

    linux 查看文件夹下的文件个数(当前目录的文件数) 查看文件夹下的文件个数(当前目录的文件数) 说明: ls -l : 长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等) grep ^- : 这里将长列表输出信息过滤一部分,只保留一般文件,如

    2024年02月16日
    浏览(16)
  • Jtti:linux删除文件夹命令和目录命令是什么?

    在Linux中,删除文件和目录是每个用户都必须知道的基本操作。尽管这似乎是一项简单的任务,但删除文件和目录的方法多种多样,每种方法都有其特定的用例。在本教程中,小编将给大家分析一下linux删除文件夹命令和目录命令是什么? 一、linux删除文件夹命令是什么? 删除文

    2024年02月10日
    浏览(21)
  • linux 创建共享文件夹

    1 安装 Samba: 在终端输入以下命令: 2 配置 Samba: 打开配置文件: 在文件的末尾添加如下内容: 替换 “/path/to/shared/folder” 为实际的文件夹路径。 3 创建 Samba 用户: 您需要创建一个 Samba 用户来访问共享文件夹: 替换 \\\"username\\\"为实际的用户名。 4 重启 Samba 服务: 输入以下

    2024年02月10日
    浏览(20)
  • linux创建文件夹命令

    我们可以使用mkdir命令在 Linux 或类似 Unix 的操作系统中创建新目录或文件夹。本文将介绍如何在 Linux 或 Unix 系统中创建文件夹(也称为“目录”)。 操作步骤如下:1.在 Linux 中打开终端应用程序。2.输入mkdir命令。3.输入文件夹名称。 知道了最基本的语法,那么我们就上机实

    2024年01月20日
    浏览(17)
  • Windows&Linux共享文件夹之利用虚拟机VM创建共享文件夹

    由于大部分人常用和熟悉的系统是Windows系统,所以在Linux下进行操作很多时候会感到不太方便,就比如程序代码开发时大多数情况下都是在Windows下进行的,所以比较熟悉Windows下的开发环境。要进行Linux开发的时候,多数情况下都是借助Windows平台进行代码的编辑,然后去Linu

    2024年02月11日
    浏览(22)
  • linux和windows机器下创建共享文件夹

    1、安装samba 2、创建共享文件夹 3、备份配置 4、修改配置 添加以下信息到文件结尾 5、添加用户访问密码 密码是后续访问共享文件夹时需要输入的 6、重启samba 7、访问共享文件夹 在windows下,输入需要访问的共享文件夹及所在IP地址 然后在弹出的认证界面输入用户名和密码(

    2024年01月21日
    浏览(24)
  • Linux如何挂载创建于Windows中的共享文件夹?

      有时Linux需要访问WIndows中的文件,除了在Liniux中创建共享文件夹,Windows与之链接共享,Linux还可以通过挂载的方式获取Windows的共享文件夹内容。   在Windows中创建的共享文件夹要被Linux访问,需要先启用共享功能,允许本机被另一台计算机连接,同时启用SMB 1.0/CIFS 文件

    2024年02月05日
    浏览(23)
  • selenium + chrome109以上版本会自动在C:\Program Files (x86)目录下创建scoped_dir*文件夹

    问题如标题所述使用selenium操作chrome109以上版本会在C:Program Files (x86)目录下创建scoped_dir*文件夹,每次启动都会创建一个,文件夹内容为浏览器的用户配置,大小在20M左右,多次操作后会导致磁盘占满问题。 经过查询问题是chromedriver导致,官方仍未修复此问题。 可通过以下地

    2024年02月03日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包