linux之utime函数解析

摘要:
[ lingyun@localhostutime]$lshelloutime.cworld[lingyun@localhostutime]$catutime.c/***************************************************************版权所有:(c)2013fulinux˂fulinux@sina.

[lingyun@localhost utime]$ ls
hello  utime.c  world
[lingyun@localhost utime]$ cat utime.c 
/*********************************************************************************
 *      Copyright:  (C) 2013 fulinux<fulinux@sina.com> 
 *                  All rights reserved.
 *
 *       Filename:  utime.c
 *    Description:  This file 
 *                 
 *        Version:  1.0.0(08/04/2013~)
 *         Author:  fulinux <fulinux@sina.com>
 *      ChangeLog:  1, Release initial version on "08/04/2013 05:49:04 PM"
 *                 
 ********************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <utime.h>
#include <sys/stat.h>




/********************************************************************************
 *  Description:
 *   Input Args:
 *  Output Args:
 * Return Value:
 ********************************************************************************/
int main (int argc, char **argv)
{
    int     i, fd;
    struct stat statbuf;
    struct utimbuf timebuf;


    for(i = 1; i < argc; i++)
    {
        if(stat(argv[i], &statbuf) < 0)
        {
            printf ("%s: stat error ", argv[i]);
            continue;
        }
        if((fd = open(argv[i], O_RDWR | O_TRUNC)) < 0)
        {
            printf ("%s: open error ", argv[i]);
            continue;
        }
        close(fd);
        timebuf.actime  = statbuf.st_atime;
        timebuf.modtime = statbuf.st_mtime;


        if(utime(argv[i], &timebuf) < 0)
        {
            printf ("%s: utime error ", argv[i]);
            continue;
        }
    }
    exit(0);
} /* ----- End of main() ----- */




[lingyun@localhost utime]$ gcc utime.c 
[lingyun@localhost utime]$ ls -l hello world 
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:03 hello
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:04 world
[lingyun@localhost utime]$ ls -lu hello world 
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:03 hello
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:04 world
[lingyun@localhost utime]$ date
Sun Aug  4 18:10:44 CST 2013
[lingyun@localhost utime]$ ./a.out hello world 
[lingyun@localhost utime]$ ls -l hello world 
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:03 hello
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:04 world
[lingyun@localhost utime]$ ls -lu hello world 
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:03 hello
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:04 world
[lingyun@localhost utime]$ ls -lc hello world 
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:10 hello
-rw-r--r-- 1 lingyun trainning 0 Aug  4 18:10 world
[lingyun@localhost utime]$ 

免责声明:文章转载自《linux之utime函数解析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇常用密码表html+javascript实现可拖动弹出层、对话框、可提交下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

parse_str() 函数把查询字符串解析到变量中。

注释:如果未设置array参数,则由该函数设置的变量将覆盖已存在的同名变量。 注释:php.ini 文件中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。 语法 parse_str(string,array) 参...

2019-2020-1 20175302_20175314_20175316 《信息安全系统设计基础》实验一 开发环境的熟悉

2019-2020-1 20175302_20175314_20175316 《信息安全系统设计基础》实验一 开发环境的熟悉 一、实验内容 交叉编译环境 目标机宿主机联通 目标机运行程序 目标机模块分解 清理工作 二、实验步骤 (一)交叉机编译环境 安装老师提供的software目录中的“VMware-workstation-full-10.0.1-1...

练习一下linux中的list函数。

所有的list函数见 include/linux/list.h 自己从 include/linux/list.h 拷贝了一些函数到自己的list.c中, 然后练习了一下。 没有别的目的,就是想熟练一下。毕竟linux内核代码中试用了大量的list函数。 list的函数太方便使用了。 文件:list.c 1 #include <stdio.h>...

结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程

一、分析fork系统调用 fork系统调用简介 fork 系统调用将创建一个与父进程几乎一样的新进程,之后继续执行下面的指令。程序可以根据 fork的返回值,确定当前处于父进程中,还是子进程中——在父进程中,返回值为新创建子进程的进程 ID,在子进程中,返回值是 0。 首先以一个例子来展示fork系统调用的效果,其代码如下: #include <std...

undefined reference to 'pthread_create'问题解决

由于是Linux新手,所以现在才开始接触线程编程,照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'undefined reference to 'pthread_join'问题原因:pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 lib...

Linux package installation: deb and rpm

一般来说著名的 Linux 系统基本上分两大类: RedHat 系列:Redhat、Centos、Fedora 等 Debian 系列:Debian、Ubuntu 等 Dpkg (Debian系): dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版...