]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - lib/libc/sys/utimes.2
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / lib / libc / sys / utimes.2
1 .\"     $NetBSD: utimes.2,v 1.13 1999/03/22 19:45:11 garbled Exp $
2 .\"
3 .\" Copyright (c) 1990, 1993
4 .\"     The Regents of the University of California.  All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\" 4. Neither the name of the University nor the names of its contributors
15 .\"    may be used to endorse or promote products derived from this software
16 .\"    without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\"     @(#)utimes.2    8.1 (Berkeley) 6/4/93
31 .\" $FreeBSD$
32 .\"
33 .Dd December 9, 2006
34 .Dt UTIMES 2
35 .Os
36 .Sh NAME
37 .Nm utimes ,
38 .Nm lutimes ,
39 .Nm futimes
40 .Nd set file access and modification times
41 .Sh LIBRARY
42 .Lb libc
43 .Sh SYNOPSIS
44 .In sys/time.h
45 .Ft int
46 .Fn utimes "const char *path" "const struct timeval *times"
47 .Ft int
48 .Fn lutimes "const char *path" "const struct timeval *times"
49 .Ft int
50 .Fn futimes "int fd" "const struct timeval *times"
51 .Sh DESCRIPTION
52 The access and modification times of the file named by
53 .Fa path
54 or referenced by
55 .Fa fd
56 are changed as specified by the argument
57 .Fa times .
58 .Pp
59 If
60 .Fa times
61 is
62 .Dv NULL ,
63 the access and modification times are set to the current time.
64 The caller must be the owner of the file, have permission to
65 write the file, or be the super-user.
66 .Pp
67 If
68 .Fa times
69 is
70 .No non- Ns Dv NULL ,
71 it is assumed to point to an array of two timeval structures.
72 The access time is set to the value of the first element, and the
73 modification time is set to the value of the second element.
74 For file systems that support file birth (creation) times (such as
75 .Dv UFS2 ) ,
76 the birth time will be set to the value of the second element
77 if the second element is older than the currently set birth time.
78 To set both a birth time and a modification time,
79 two calls are required; the first to set the birth time
80 and the second to set the (presumably newer) modification time.
81 Ideally a new system call will be added that allows the setting
82 of all three times at once.
83 The caller must be the owner of the file or be the super-user.
84 .Pp
85 In either case, the inode-change-time of the file is set to the current
86 time.
87 .Pp
88 The
89 .Fn lutimes
90 system call
91 is like
92 .Fn utimes
93 except in the case where the named file is a symbolic link,
94 in which case
95 .Fn lutimes
96 changes the access and modification times of the link,
97 while
98 .Fn utimes
99 changes the times of the file the link references.
100 .Sh RETURN VALUES
101 .Rv -std
102 .Sh ERRORS
103 The
104 .Fn utimes
105 and
106 .Fn lutimes
107 system calls
108 will fail if:
109 .Bl -tag -width Er
110 .It Bq Er EACCES
111 Search permission is denied for a component of the path prefix;
112 or the
113 .Fa times
114 argument is
115 .Dv NULL
116 and the effective user ID of the process does not
117 match the owner of the file, and is not the super-user, and write
118 access is denied.
119 .It Bq Er EFAULT
120 The
121 .Fa path
122 or
123 .Fa times
124 argument
125 points outside the process's allocated address space.
126 .It Bq Er EIO
127 An I/O error occurred while reading or writing the affected inode.
128 .It Bq Er ELOOP
129 Too many symbolic links were encountered in translating the pathname.
130 .It Bq Er ENAMETOOLONG
131 A component of a pathname exceeded
132 .Dv NAME_MAX
133 characters, or an entire path name exceeded
134 .Dv PATH_MAX
135 characters.
136 .It Bq Er ENOENT
137 The named file does not exist.
138 .It Bq Er ENOTDIR
139 A component of the path prefix is not a directory.
140 .It Bq Er EPERM
141 The
142 .Fa times
143 argument is not
144 .Dv NULL
145 and the calling process's effective user ID
146 does not match the owner of the file and is not the super-user.
147 .It Bq Er EPERM
148 The named file has its immutable or append-only flag set, see the
149 .Xr chflags 2
150 manual page for more information.
151 .It Bq Er EROFS
152 The file system containing the file is mounted read-only.
153 .El
154 .Pp
155 The
156 .Fn futimes
157 system call
158 will fail if:
159 .Bl -tag -width Er
160 .It Bq Er EBADF
161 The
162 .Fa fd
163 argument
164 does not refer to a valid descriptor.
165 .El
166 .Pp
167 All of the system calls will fail if:
168 .Bl -tag -width Er
169 .It Bq Er EACCES
170 The
171 .Fa times
172 argument is
173 .Dv NULL
174 and the effective user ID of the process does not
175 match the owner of the file, and is not the super-user, and write
176 access is denied.
177 .It Bq Er EFAULT
178 The
179 .Fa times
180 argument
181 points outside the process's allocated address space.
182 .It Bq Er EINVAL
183 The
184 .Va tv_usec
185 component of at least one of the values specified by the
186 .Fa times
187 argument has a value less than 0 or greater than 999999.
188 .It Bq Er EIO
189 An I/O error occurred while reading or writing the affected inode.
190 .It Bq Er EPERM
191 The
192 .Fa times
193 argument is not
194 .Dv NULL
195 and the calling process's effective user ID
196 does not match the owner of the file and is not the super-user.
197 .It Bq Er EROFS
198 The file system containing the file is mounted read-only.
199 .El
200 .Sh SEE ALSO
201 .Xr chflags 2 ,
202 .Xr stat 2 ,
203 .Xr utime 3
204 .Sh HISTORY
205 The
206 .Fn utimes
207 system call appeared in
208 .Bx 4.2 .
209 The
210 .Fn futimes
211 and
212 .Fn lutimes
213 system calls first appeared in
214 .Fx 3.0 .