/*demo(通过系统命令)
*实现一个对视频文件可以操作的软连接路径
*在Nginx中的HTML页面可直接访问视频文件
*目录的创建,文件的链接,文件的删除
*/#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/stat.h>  //mkdir
#include <sys/types.h>
#include <dirent.h>  //opendir
#include <unistd.h> //unlink#define PLAY_INFO_DIR "paly"
#define EEXIST          17int OpendirAndMkdir(const char * pathname)
{int ret = 0;DIR * mydir = NULL;if ((mydir = opendir(pathname)) == NULL){ret = mkdir(pathname, 0755);if (ret != 0) return -1;printf("%s created sucess!/n", pathname);}else{printf("%s exist!/n", pathname);}return ret;
}int main()
{int ret = -1;char *dirlocal = NULL;char mark = '/';char *retlink = NULL;char dirName[256] = {'\0'};char cmd[1024] = {0};char filepath[] =  "/home/huqin/bstr/test.264";printf("start link path\n");//获取链接文件retlink = strrchr(filepath,mark);printf("strrchr link file path:%s\n",retlink);snprintf(dirName, sizeof(dirName), "%s/%s", "/tmp/Nginx/html/", PLAY_INFO_DIR);//判断目录是否存在,不存在则创建OpendirAndMkdir(dirName);//将文件名连接到链接目录strcat(dirName,retlink);printf("strcat link path:%s\n",dirName);//执行软链接命令sprintf(cmd, "ln -s %s %s", filepath, dirName);ret = system(cmd);do{if(ret == 256){printf("system link path:%s already exists, ret = %d.\n",dirName,ret);break;}if(ret != 0){printf("system link path:%s failed, ret = %d.\n",dirName,ret);return -1;}}while(0);printf("finally link path:%s\n",dirName);//匹配到文件链接目录位置dirlocal = strstr(dirName,PLAY_INFO_DIR);printf("dir find play link path:%s\n",dirlocal);//删除链接文件if(( ret = unlink(dirName)) < 0){printf("unlink errpr ret =%d !\n",ret);}printf("unlink link path:%s\n",dirName);return 0;
}
huqin@ubuntu:~/bstr$ ./strrch
start link path
strrchr link file path:/test.264
/tmp/paly exist!/nstrcat link path:/tmp/paly/test.264
finally link path:/tmp//paly/test.264
dir find play link path:paly/test.264
unlink link path:/tmp/paly/test.264

软连接文件的创建删除相关推荐

  1. golang 文件操作 创建 读写 复制移动 权限 删除

    目录 介绍 基本操作 创建空文件 Truncate文件 得到文件信息 重命名和移动 删除文件 打开和关闭文件 检查文件是否存在 检查读写权限 改变权限.拥有者.时间戳 硬链接和软链接 读写 复制文件 ...

  2. java 文件夹删除_java创建删除文件及文件夹大全

    /** * 根据路径删除指定的目录或文件,无论存在与否 *@param sPath 要删除的目录或文件 *@return 删除成功返回 true,否则返回 false. */ public stati ...

  3. 【转载】常用DOS命令(包括创建删除文件夹/文件)

    https://www.cnblogs.com/chjb/articles/9393627.html 1.创建文件夹 我们可以使用 md 或mkdir 命令来创建,其中md和mkdir都是建立新目录m ...

  4. DOS命令-创建删除文件和文件夹

    原文链接:https://www.cnblogs.com/chjb/articles/9393627.html 1.创建文件夹 我们可以使用 md 或mkdir 命令来创建,其中md和mkdir都是建 ...

  5. Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略

    Python语言学习:创建/删除文件/文件夹.获取当前文件/文件夹路径(系统环境路径/目录).获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略 目录 系统环境路径的设置 1.sys ...

  6. Linux目录、文件的创建与删除

    目录的创建: mkdir - make directories 使用示例及说明: [root@localhost ~]# mkdir /root/x/y/z mkdir: cannot create ...

  7. linux 文件重命名_Linux编程 5 (目录重命名与移动 删除,目录创建删除,查看file)...

    一. 文件重命名与移动(mv) 在linux中,重命名文件称为移动(moving).mv命令可以将文件和目录移动到另一个位置或重新命名. 1.1 使用mv重命名 下面在/usr/local下面创建一个 ...

  8. ubuntu创建文件夹和删除文件

    创建 名为docker的文件夹 : ubuntu创建文件夹mkdir name mkdir docker 删除 名为docker的文件夹 : ubuntu删除文件rm name rm docker

  9. java : enum、创建文件和文件夹、删除文件和文件夹、获得项目绝对路径、写入数据到excel中、java代码中两种路径符号写法、读取、写入text文件...

    java : enum http://www.cnblogs.com/hyl8218/p/5088287.html 创建文件和文件夹.删除文件和文件夹 http://www.cnblogs.com/m ...

最新文章

  1. 这是个将近3万人点赞,涉及9大模块,专为程序员准备的面试宝典
  2. sql server配置连接oracle数据库,MS SQL Server连接Oracle
  3. 51nod 1379 索函数
  4. 敏捷软件开发宣言ndash;Manifesto for Agile Software Development
  5. java 七巧板油漆问题_七巧板颜色填充的问题?
  6. dockerfile 与 docker-compose的区别
  7. delphi framerect 画透明_闭上眼睛一起进入彩色画的梦境,幻彩花精灵,彩铅手绘教程...
  8. windows下工具
  9. 实时时钟DS1302
  10. matlab深度学习基本操作,深度学习讲解,源代码分享,用一用改一改随便发篇EI
  11. Ubuntu环境下Android反编译apk教程
  12. 管壁式换热器cad图纸_各种换热器结构原理动态图,让你大开眼界!
  13. 戴尔N5110装WIN10的体验
  14. Java编程入门与应用 P85——例3-26 continue的使用——(循环录入Java课程的学生成绩,统计 分数大于80分(包括等于)的学生人数。)
  15. 第三次作业-李纯锐-201731084433
  16. wordpress企业主题推荐
  17. Linux的常用命令就是记不住,还在百度找?于是推出了这套教程,
  18. 备份一下Linux笔记
  19. 房屋安全鉴定报告的有效期及两种鉴定类型
  20. Unity XR初始化设置

热门文章

  1. 5G NR QC-LDPC MATLAB程序理解
  2. save-ps-to-svg1.0百度网盘资源
  3. 极光推送在APICloud平台的使用教程
  4. 百分点科技助力中国环境监测总站用数据底座赋能智慧监测
  5. Linux(CentOS7)查看虚拟机IP
  6. 远程桌面连接:提示出现身份验证错误,要求的函数不受支持。这可能是由于CredSSP加密数据库修正错误。
  7. 微软构想务实的SOA 押注Oslo计划
  8. java 利用继承和多态设计三角形,圆矩形
  9. 51SCM_AD模块CS5550学习心得
  10. 前端---HTML5如何制作一个折线图