首页 > 其他 > 详细

文件截取,改名,删除

时间:2016-01-13 21:32:11      阅读:84      评论:0      收藏:0      [点我收藏+]

 

例1: 文件截短. 将指定的文件截短为指定的长度

mytruncate.c

#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>

#define ERROR(flag)                      if(flag)                    {                            printf("%d: ",__LINE__);            fflush(stdout);                    perror("error");                exit(errno);                }

int main(int argc,char *argv[])
{
    int ret = truncate(argv[1],atoi(argv[2]));
    ERROR(ret == -1);

    return 0;
}

编译链接执行, 输出如下:

技术分享

技术分享

上图中tfile内容被截成指定的长度. 最后一次在7个字符长度上截成9个字符长度, 在后面加了两个0

 

例2: 文件改名

myrename.c

#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>

#define ERROR(flag)                      if(flag)                    {                            printf("%d: ",__LINE__);            fflush(stdout);                    perror("error");                exit(errno);                }

int main(int argc,char *argv[])
{
    int ret = rename(argv[1],argv[2]);
    ERROR(ret == -1);

    return 0;
}

编译链接执行, 输出结果如下:

技术分享

将文件111改名为222

 

例3: 用remove()函数删除一个目录项

myremove.c

#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>

#define ERROR(flag)                      if(flag)                    {                            printf("%d: ",__LINE__);            fflush(stdout);                    perror("error");                exit(errno);                }

int main(int argc,char *argv[])
{

    int ret = remove(argv[1]);
    ERROR(ret == -1);

    return 0;
}

编译链接执行, 结果如下:

技术分享

 

例4: 用unlink()删除一个目录项

myunlink.c

#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#define ERROR(flag)                      if(flag)                    {                            printf("%d: ",__LINE__);            fflush(stdout);                    perror("error");                exit(errno);                }

int main(int argc,char *argv[])
{

    char buf[100];

    int fd = open("tmp",O_RDWR | O_CREAT,S_IRWXU);
    ERROR(fd == -1);

    int ret = unlink("tmp");
    ERROR(ret == -1);

    ret = write(fd,"hello world",11);
    ERROR(ret != 11);

    ret = lseek(fd,0,SEEK_SET);
    ERROR(ret == -1);

    ret = read(fd,buf,11);
    ERROR(ret < 0);
    buf[ret] = 0;
    puts(buf);

    close(fd);

    return 0;
}

编译链接执行, 输出如下:

技术分享

 

文件截取,改名,删除

原文:http://www.cnblogs.com/zhanglong71/p/5122767.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!