通过WIN32宏进行判断
 
window下mkdir函数
 
#include<direct.h>
int _mkdir( const char *dirname );
 
linux下mkdir函数mode_t参数详解

#include <sys/stat.h>
int mkdir(const char *path, mode_t mode);
 
参数:
path是目录名
mode是目录权限

返回值:
返回0 表示成功, 返回 -1表示错误,并且会设置errno值。

mode模式位:
mode 表示新目录的权限,可以取以下值:
S_IRUSR 
S_IREAD
S_IWUSR 
S_IWRITE 
S_IXUSR 
S_IEXEC 
S_IRWXU 
This is equivalent to (S_IRUSR | S_IWUSR | S_IXUSR). 
S_IRGRP 
Read permission bit for the group owner of the file. Usually 040. 
S_IWGRP 
Write permission bit for the group owner of the file. Usually 020. 
S_IXGRP 
Execute or search permission bit for the group owner of the file. Usually 010. 
S_IRWXG 
This is equivalent to (S_IRGRP | S_IWGRP | S_IXGRP). 
S_IROTH 
Read permission bit for other users. Usually 04. 
S_IWOTH 
Write permission bit for other users. Usually 02. 
S_IXOTH 
Execute or search permission bit for other users. Usually 01. 
S_IRWXO 
This is equivalent to (S_IROTH | S_IWOTH | S_IXOTH). 
S_ISUID 
This is the set-user-ID on execute bit, usually 04000. See How Change Persona. 
S_ISGID 
This is the set-group-ID on execute bit, usually 02000. See How Change Persona. 
S_ISVTX 
This is the sticky bit, usually 01000.
 
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 <sys/types.h> #include <sys/stat.h> 
int status;
status = mkdir("/home/newdir", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
这样就创建了一个newdir目录,权限通过ls -al 查看为
drwxr-xr-x
跟用linux命令mkdir创建的目录权限位一致。

最新文章

  1. [AR]Vumark(下一代条形码)
  2. ubuntu 15.10安装并配置samba
  3. std::vector&lt;bool&gt;中的坑
  4. 招聘:有兴趣做一个与Android对等的操作系统么?
  5. oracle触发器设置uuid变量
  6. IE8中能继续使用Expression的解决方案
  7. vs查看虚函数表和类内存布局
  8. 第一次使用idea从SVN什么checkout项目,一直都是用的eclipse
  9. Gradle sync failed 异常
  10. poj 1279 半平面交核面积
  11. UNIX环境高级编程——System V 共享内存区
  12. NewLife.Net——管道处理器解决粘包
  13. raft共识算法
  14. java 实现udp通讯
  15. 通过爬虫程序深入浅出java 主从工作模型
  16. AE实现拖拽
  17. jQuery 新建函数
  18. BLE获取iphone mac地址的方法--【原创】
  19. Android 手机震动
  20. ACTGame项目

热门文章

  1. 深入浅出设计模式——原型模式(Prototype Pattern)
  2. 《BI那点儿事》数据流转换——聚合
  3. 打完补丁后测试db_link对SCN的影响
  4. Django1.9开发博客(10)- 全文搜索
  5. 做完c语言作业的心得
  6. Port Hacking
  7. SSM框架学习之高并发秒杀业务--笔记1-- 项目的创建和依赖
  8. string.Format格式化
  9. 【仿真】【modelsim】:verilog功能仿真流程
  10. 启动本地Oracle