[Last updated May 17 2007] Aardvark Summary Table ______________________ ERN 1 Accept ERN 2 Accept ERN 3 Accept ERN 4 Duplicate of 3 ERN 5 Accept ERN 6 Accept ERN 7 Accept ERN 8 Accept ERN 9 Accept ERN 10 Accept ERN 11 Accept ERN 12 Accept ERN 13 Accept ERN 14 Accept ERN 15 Accept ERN 16 Accept ERN 17 Accept ERN 18 Accept ERN 19 Accept ERN 20 Accept ERN 21 Accept ERN 22 Accept ERN 23 Accept ERN 24 Accept ERN 25 Accept ERN 26 Accept ERN 27 Accept ERN 28 Accept ERN 29 Accept ERN 30 Accept ERN 31 Accept ERN 32 Accept ERN 33 Accept ERN 34 Accept ERN 35 Accept ERN 36 Accept ERN 37 Accept ERN 38 Accept ERN 39 Accept ERN 40 Accept ERN 41 Accept ERN 42 Accept ERN 43 Accept ERN 44 Accept ERN 45 Accept ERN 46 Accept ERN 47 Accept ERN 48 Accept ERN 49 Accept ERN 50 Accept ERN 51 Accept ERN 52 Accept ERN 53 Accept ERN 54 Accept ERN 55 Accept ERN 56 Accept ERN 57 Accept ERN 58 Accept ERN 59 Accept ERN 60 Accept as marked ERN 61 Accept as marked ERN 62 Accept as marked ERN 63 Accept ERN 64 Accept as marked ERN 65 Accept ERN 66 Accept ERN 67 Accept ERN 68 Accept as marked ERN 69 Accept as marked _____________________________________________________________________________ OBJECTION Enhancement Request Number 1 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 1) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 33 Line: 1269-1295 Section: Signal_Concepts Problem: Fine Grain timestamp updates Action: Add to the table on XSH page 33, lines 1269 to 1295: utimensat() utimes() _____________________________________________________________________________ OBJECTION Enhancement Request Number 2 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 8) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 33 Line: 1283 Section: Signal_Concepts Problem: Fine Grain timestamp updates - table of async-signal-safe functions Action: Change "futimesat()" to "utimensat()", and move to correct alphabetical place in this list. _____________________________________________________________________________ OBJECTION Enhancement Request Number 3 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 9) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 56 Line: 2262 Section: 2.9.5.2 Problem: Fine Grain timestamp updates Action: Change "futimesat()" to "utimensat()", and move to correct alphabetical place in this list. _____________________________________________________________________________ OBJECTION Enhancement Request Number 4 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 10) _____________________________________________________________________________ Accept_____ Accept as marked below_____ Duplicate_of_3 Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 56 Line: 2262 Section: 2.9.5.2 Problem: Fine Grain timestamp updates Action: Change "futimesat()" to "utimensat()", and move to correct alphabetical place in this list. _____________________________________________________________________________ OBJECTION Enhancement Request Number 5 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 2) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 72 Line: 2970-2973 Section: 2.11 Problem: Fine Grain timestamp updates Action: Change lines 2970-2973 from: The st_ctime and st_mtime fields of a file associated with an active trace stream shall be marked for update every time any of the tracing operations modifies that file. The st_atime field of a file associated with a trace stream shall be marked for update every time any of the tracing operations causes data to be read from that file. to: The last data modification and file status change timestamps of a file associated with an active trace stream shall be marked for update every time any of the tracing operations modifies that file. The last data access timestamp of a file associated with a trace stream shall be marked for update every time any of the tracing operations causes data to be read from that file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 6 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 3) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 193 Line: 6591 Section: chmod Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, chmod( ) shall mark for update the st_ctime field of the file. to: Upon successful completion, chmod( ) shall mark for update the last file status change timestamp of the file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 7 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 4) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 197 Line: 6745 Section: chown Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, chown( ) shall mark for update the st_ctime field of the file. to: Upon successful completion, chown( ) shall mark for update the last file status change timestamp of the file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 8 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 5) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 311 Line: 10229-10231 Section: exec Problem: Fine Grain timestamp updates Action: Change lines 10229-10231 from: Upon successful completion, the exec functions shall mark for update the st_atime field of the file. If an exec function failed but was able to locate the process image file, whether the st_atime field is marked for update is unspecified. to: Upon successful completion, the exec functions shall mark for update the last data access timestamp of the file. If an exec function failed but was able to locate the process image file, whether the last data access timestamp is marked for update is unspecified. _____________________________________________________________________________ OBJECTION Enhancement Request Number 9 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 6) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 339 Line: 11137-11138 Section: fclose Problem: Fine Grain timestamp updates Action: Change from: The fclose( ) function shall mark for update the st_ctime and st_mtime fields of the underlying file, if the stream was writable, and if buffered data remains that has not yet been written to the file. to: The fclose( ) function shall mark for update the last data modification and last file status change timestamps of the underlying file, if the stream was writable, and if buffered data remains that has not yet been written to the file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 10 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 7) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 354 Line: 11703-11704 Section: fdopen Problem: Fine Grain timestamp updates Action: Change from: The fdopen( ) function may cause the st_atime field of the underlying file to be marked for update. to: The fdopen() function may cause the last data access timestamp of the underlying file to be marked for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 11 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 11) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 376 Line: 12278-12280 Section: fflush Problem: Fine Grain timestamp updates Action: Change from: If stream points to an output stream or an update stream in which the most recent operation was not input, fflush( ) shall cause any unwritten data for that stream to be written to the file, [CX]and the st_ctime and st_mtime fields of the underlying file shall be marked for update[/CX]. to: If stream points to an output stream or an update stream in which the most recent operation was not input, fflush( ) shall cause any unwritten data for that stream to be written to the file, [CX]and the last data access and last file status change timestamps of the underlying file shall be marked for update[/CX]. _____________________________________________________________________________ OBJECTION Enhancement Request Number 12 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 12) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 380 Line: 12408-12411 Section: fgetc Problem: Fine Grain timestamp updates Action: Change from: The fgetc( ) function may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc( ), fgets( ), fread( ), fscanf( ), getc( ), getchar( ), gets( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ). to: The fgetc() function may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc(), fgets(), fread(), fscanf(), getc(), getchar(), gets(), or scanf() using stream that returns data not supplied by a prior call to ungetc(). _____________________________________________________________________________ OBJECTION Enhancement Request Number 13 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 13) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 384 Line: 12529-12532 Section: fgets Problem: Fine Grain timestamp updates Action: Change from: The fgets( ) function may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc( ), fgets( ), fread( ), fscanf( ), getc( ), getchar( ), gets( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ). to The fgets() function may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc(), fgets(), fread(), fscanf(), getc(), getchar(), gets(), or scanf() using stream that returns data not supplied by a prior call to ungetc(). _____________________________________________________________________________ OBJECTION Enhancement Request Number 14 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 14) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 386 Line: 12583-12586 Section: fgetwc Problem: Fine Grain timestamp updates Action: Change from: The fgetwc( ) function may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc( ), fgets(), fgetwc( ), fgetws( ), fread( ), fscanf( ), getc( ), getchar( ), gets( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ) or ungetwc( ). to: The fgetwc() function may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc(), fgets(), fgetwc(), fgetws(), fread(), fscanf(), getc(), getchar(), gets(), or scanf() using stream that returns data not supplied by a prior call to ungetc() or ungetwc(). _____________________________________________________________________________ OBJECTION Enhancement Request Number 15 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 15) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 388 Line: 12659-12662 Section: fgetws Problem: Fine Grain timestamp updates Action: Change from: The fgetws( ) function may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc( ), fgets(), fgetwc( ), fgetws( ), fread( ), fscanf( ), getc( ), getchar( ), gets( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ) or ungetwc( ). to: The fgetws() function may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc(), fgets(), fgetwc(), fgetws(), fread(), fscanf(), getc(), getchar(), gets(), or scanf() using stream that returns data not supplied by a prior call to ungetc() or ungetwc(). _____________________________________________________________________________ OBJECTION Enhancement Request Number 16 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 16) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 409 Line: 13371-13373 Section: fopen Problem: Fine Grain timestamp updates Action: Change from: If mode is w, wb, a, ab, w+, wb+, w+b, a+, ab+, or a+b, and the file did not previously exist, upon successful completion, the fopen( ) function shall mark for update the st_atime, st_ctime, and st_mtime fields of the file and the st_ctime and st_mtime fields of the parent directory. to: If mode is w, wb, a, ab, w+, wb+, w+b, a+, ab+, or a+b, and the file did not previously exist, upon successful completion, the fopen() function shall mark for update the last data access, last data modification and last file status change timestamps of the file and the last file status change and last data modification timestamps of the parent directory. _____________________________________________________________________________ OBJECTION Enhancement Request Number 17 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 17) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 429 Line: 14172-14174 Section: fprintf Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the call to a successful execution of fprintf( ) or printf( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream or a call to exit( ) or abort( ). to: The last data modification and last file status chage timestamps of the file shall be marked for update between the call to a successful execution of fprintf( ) or printf( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 18 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 19) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 436 Line: 14458-14460 Section: fputc Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the successful execution of fputc( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream or a call to exit( ) or abort( ). to: The last data modification and last file status change timestamps of the file shall be marked for update between the successful execution of fputc( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 19 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 20) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 438 Line: 14526-14528 Section: fputs Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the successful execution of fputs( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream or a call to exit( ) or abort( ). to: The last data modification and last file status change timestamps of the file shall be marked for update between the successful execution of fputs( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 20 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 21) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 440 Line: 14580-14582 Section: fputwc Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the successful execution of fputwc( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream or a call to exit( ) or abort( ). to: The last data modification and last file status change timestamps of the file shall be marked for update between the successful execution of fputwc( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 21 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 22) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 442 Line: 14652-14654 Section: fputws Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the successful execution of fputws( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream or a call to exit( ) or abort( ). to: The last data modification and last file status change timestamps of the file shall be marked for update between the successful execution of fputws( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 22 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 18) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 443 Line: 14694-14697 Section: fread Problem: Fine Grain timestamp updates Action: Change from: The fread( ) function may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc( ), fgets(), fgetwc( ), fgetws( ), fread( ), fscanf( ), getc( ), getchar( ), gets( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ) or ungetwc( ). to: The fread( ) function may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc( ), fgets( ), fgetwc( ), fgetws( ), fread( ), fscanf( ), getc( ), getchar( ), gets( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ) or ungetwc( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 23 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 23) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 462 Line: 15357-15360 Section: fscanf Problem: Fine Grain timestamp updates Action: Change from: The fscanf( ) and scanf( ) functions may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc(), fgets( ), fread( ), getc( ), getchar( ), gets( ), fscanf( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ). to: The fscanf( ) and scanf( ) functions may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc( ), fgets( ), fread( ), getc( ), getchar( ), gets( ), fscanf( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 24 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 24) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 465 Line: 15458-15460 Section: fseek Problem: Fine Grain timestamp updates Action: Change from: If the stream is writable and buffered data had not been written to the underlying file, fseek( ) shall cause the unwritten data to be written to the file and shall mark the st_ctime and st_mtime fields of the file for update. to: If the stream is writable and buffered data had not been written to the underlying file, fseek( ) shall cause the unwritten data to be written to the file and shall mark the last data modification and last file status change timestamps of the file for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 25 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 25) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 470 Line: 15621-15623 Section: fstat Problem: Fine Grain timestamp updates Action: Change from: For all other file types defined in this volume of IEEE Std 1003.1-200x, the structure members st_mode, st_ino, st_dev, st_uid, st_gid, st_atime, st_ctime, and st_mtime shall have meaningful values and the value of the st_nlink member shall be set to the number of links to the file. to: For all other file types defined in this volume of IEEE Std 1003.1-200x, the structure members st_mode, st_ino, st_dev, st_uid, st_gid, st_atim, st_ctim, and st_mtim shall have meaningful values and the value of the st_nlink member shall be set to the number of links to the file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 26 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 26) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 473 Line: 15716-15718 Section: fstatat Problem: Fine Grain timestamp updates Action: Change from: For all other file types defined in this volume of IEEE Std 1003.1-200x, the structure members st_mode, st_ino, st_dev, st_uid, st_gid, st_atime, st_ctime, and st_mtime shall have meaningful values and the value of the member st_nlink shall be set to the number of links to the file. to: For all other file types defined in this volume of IEEE Std 1003.1-200x, the structure members st_mode, st_ino, st_dev, st_uid, st_gid, st_atim, st_ctim, and st_mtim shall have meaningful values and the value of the member st_nlink shall be set to the number of links to the file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 27 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 27) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 476 Line: 15849-15852 Section: fstatat Problem: Fine Grain timestamp updates Action: Change from: The lstat( ) function is not required to update the time-related fields if the named file is not a symbolic link. While the st_uid, st_gid, st_atime, st_mtime, and st_ctime members of the stat structure may apply to a symbolic link, they are not required to do so. No functions in IEEE Std 1003.1-200x are required to maintain any of these time fields. to: The lstat( ) function is not required to update the time-related fields if the named file is not a symbolic link. While the st_uid, st_gid, st_atim, st_mtim, and st_ctim members of the stat structure may apply to a symbolic link, they are not required to do so. No functions in IEEE Std 1003.1-200x are required to maintain any of these time fields. _____________________________________________________________________________ OBJECTION Enhancement Request Number 28 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 28) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 487 Line: 16186-16188 Section: ftruncate Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, if fildes refers to a regular file, the ftruncate( ) function shall mark for update the st_ctime and st_mtime fields of the file and the S_ISUID and S_ISGID bits of the file mode may be cleared. to: Upon successful completion, if fildes refers to a regular file, the ftruncate( ) function shall mark for update the last data modification and last file status change timestamps of the file and the S_ISUID and S_ISGID bits of the file mode may be cleared. _____________________________________________________________________________ OBJECTION Enhancement Request Number 29 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 29) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 494 Line: 16370-16376 Section: futimesat Problem: Fine Grain timestamp updates Action: Delete these lines (note for ed; rm Text/Functions/futimesat.mm and remove from Text/chap03.r). _____________________________________________________________________________ OBJECTION Enhancement Request Number 30 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 30) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 501 Line: 16668-16670 Section: fwprintf Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the call to a successful execution of fwprintf( ) or wprintf( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream, or a call to exit( ) or abort( ). to: The last data modification and last file status change timestamps of the file shall be marked for update between the call to a successful execution of fwprintf( ) or wprintf( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream, or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 31 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 31) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 503 Line: 16745-16747 Section: fwrite Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the successful execution of fwrite( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream, or a call to exit( ) or abort( ). to: The last data modification and last file status change timestamps of the file shall be marked for update between the successful execution of fwrite( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream, or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 32 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 32) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 509 Line: 16987-16990 Section: fwscanf Problem: Fine Grain timestamp updates Action: Change from: The fwscanf( ) and wscanf( ) functions may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc( ), fgetwc( ), fgets( ), fgetws( ), fread( ), getc( ), getwc( ), getchar(), getwchar( ), gets( ), fscanf( ), or fwscanf( ) using stream that returns data not supplied by a prior call to ungetc( ). to: The fwscanf( ) and wscanf( ) functions may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc( ), fgetwc( ), fgets( ), fgetws( ), fread( ), getc( ), getwc( ), getchar( ), getwchar( ), gets( ), fscanf( ), or fwscanf( ) using stream that returns data not supplied by a prior call to ungetc( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 33 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 33) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 586 Line: 19357-19360 Section: gets Problem: Fine Grain timestamp updates Action: Change from: The gets( ) function may mark the st_atime field of the file associated with stream for update. The st_atime field shall be marked for update by the first successful execution of fgetc( ), fgets( ), fread( ), getc( ), getchar( ), gets( ), fscanf( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ). to: The gets( ) function may mark the last data access timestamp of the file associated with stream for update. The last data access timestamp shall be marked for update by the first successful execution of fgetc( ), fgets( ), fread( ), getc( ), getchar( ), gets( ), fscanf( ), or scanf( ) using stream that returns data not supplied by a prior call to ungetc( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 34 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 34) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 731 Line: 23769-23771 Section: link Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, link( ) shall mark for update the st_ctime field of the file. Also, the st_ctime and st_mtime fields of the directory that contains the new entry shall be marked for update. to: Upon successful completion, link( ) shall mark for update the last file status change timestamp of the file. Also, the last data modification and last file status change timestamps of the directory that contains the new entry shall be marked for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 35 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 35) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 753 Line: 24491-24499 Section: localtime Problem: Fine Grain timestamp updates Action: Change from: The following example gets the modification time for a file. The localtime( ) function converts the time_t value of the last modification date, obtained by a previous call to stat( ), into a tm structure that contains the year, month, day, and so on. #include ... struct stat statbuf; ... tm = localtime(&statbuf.st_mtime); ... to: The following example prints the last data modification timestamp in the local timezone for a given file. #include #include #include int print_file_time(const char *filename) { struct stat statbuf; struct tm *tm; char timestr[BUFSIZ]; if(stat(filename, &statbuf) == -1) return -1; if((tm = localtime(&statbuf.st_mtime)) == NULL) return -1; if(strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", tm) == 0) return -1; printf("%s: %s.%09ld\n", filename, timestr, statbuf.st_mtim.tv_nsec); return 0; } _____________________________________________________________________________ OBJECTION Enhancement Request Number 36 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 36) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 803 Line: 25946-25948 Section: mkdir Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, mkdir( ) shall mark for update the st_atime, st_ctime, and st_mtime fields of the directory. Also, the st_ctime and st_mtime fields of the directory that contains the new entry shall be marked for update. to: Upon successful completion, mkdir( ) shall mark for update the last data access, last data modification, and last file status change timestamps of the directory. Also, the last data modification and last file status change timestamps of the directory that contains the new entry shall be marked for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 37 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 37) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 809 Line: 26145-26147 Section: mkfifo Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, mkfifo( ) shall mark for update the st_atime, st_ctime, and st_mtime fields of the file. Also, the st_ctime and st_mtime fields of the directory that contains the new entry shall be marked for update. to: Upon successful completion, mkfifo( ) shall mark for update the last data access, last data modification, and last file status change timestamps of the directory. Also, the last data modification and last file status change timestamps of the directory that contains the new entry shall be marked for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 38 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 38) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 814 Line: 26292-26294 Section: mknod Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, mknod( ) shall mark for update the st_atime, st_ctime, and st_mtime fields of the file. Also, the st_ctime and st_mtime fields of the directory that contains the new entry shall be marked for update. to: Upon successful completion, mknod( ) shall mark for update the last data access, last data modification, and last file status change timestamps of the directory. Also, the last data modification and last file status change timestamps of the directory that contains the new entry shall be marked for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 39 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 39) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 827 Line: 26725-26734 Section: mmap Problem: Fine Grain timestamp updates Action: Change from: The st_atime field of the mapped file may be marked for update at any time between the mmap( ) call and the corresponding munmap( ) call. The initial read or write reference to a mapped region shall cause the files st_atime field to be marked for update if it has not already been marked for update. The st_ctime and st_mtime fields of a file that is mapped with MAP_SHARED and PROT_WRITE shall be marked for update at some point in the interval between a write reference to the mapped region and the next call to msync( ) with MS_ASYNC or MS_SYNC for that portion of the file by any process. If there is no such call and if the underlying file is modified as a result of a write reference, then these fields shall be marked for update at some time after the write reference to: The last data access timestamp of the mapped file may be marked for update at any time between the mmap( ) call and the corresponding munmap( ) call. The initial read or write reference to a mapped region shall cause the files last data access timestamp to be marked for update if it has not already been marked for update. The last data modification and last file status change timestamps of a file that is mapped with MAP_SHARED and PROT_WRITE shall be marked for update at some point in the interval between a write reference to the mapped region and the next call to msync( ) with MS_ASYNC or MS_SYNC for that portion of the file by any process. If there is no such call and if the underlying file is modified as a result of a write reference, then these timestamps shall be marked for update at some time after the write reference _____________________________________________________________________________ OBJECTION Enhancement Request Number 40 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 40) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 867 Line: 27984-27985 Section: msync Problem: Fine Grain timestamp updates Action: Change from: If msync( ) causes any write to a file, the files st_ctime and st_mtime fields shall be marked for update. to: If msync( ) causes any write to a file, the files last data modification and last file status change timestamps shall be marked for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 41 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 42) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 896 Line: 28788-28792 Section: open Problem: Fine Grain timestamp updates Action: Change from: If O_CREAT is set and the file did not previously exist, upon successful completion, open( ) shall mark for update the st_atime, st_ctime, and st_mtime fields of the file and the st_ctime and st_mtime fields of the parent directory. If O_TRUNC is set and the file did previously exist, upon successful completion, open( ) shall mark for update the st_ctime and st_mtime fields of the file. to: If O_CREAT is set and the file did not previously exist, upon successful completion, open( ) shall mark for update the last data access, last data modification, and last file status change timestamps of the file and the last data modification and last file status change timestamps of the parent directory. If O_TRUNC is set and the file did previously exist, upon successful completion, open( ) shall mark for update the last data modification and last file status change timestamps of the file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 42 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 41) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 913 Line: 29291-29293 Section: perror Problem: Fine Grain timestamp updates Action: Change from: The perror( ) function shall mark the file associated with the standard error stream as having been written (st_ctime, st_mtime marked for update) at some time between its successful completion and exit( ), abort( ), or the completion of fflush( ) or fclose( ) on stderr. to: The perror( ) function shall mark the file associated with the standard error stream as having been written (the last data modification and last file status change timestamps marked for update) at some time between its successful completion and exit( ), abort( ), or the completion of fflush( ) or fclose( ) on stderr. _____________________________________________________________________________ OBJECTION Enhancement Request Number 43 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 43) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 915 Line: 29347-29348 Section: pipe Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, pipe( ) shall mark for update the st_atime, st_ctime, and st_mtime fields of the pipe. to: Upon successful completion, pipe( ) shall mark for update the last data access, last data modification, and last file status change timestamps of the pipe. _____________________________________________________________________________ OBJECTION Enhancement Request Number 44 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 44) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1231 Line: 38208-38210 Section: puts Problem: Fine Grain timestamp updates Action: Change from: The st_ctime and st_mtime fields of the file shall be marked for update between the successful execution of puts( ) and the next successful completion of a call to fflush( ) or fclose( ) on the same stream or a call to exit( ) or abort( ). to: The last data modification and last file status chage timestamps of the file shall be marked for update between the successful execution of puts( ) and the next successful completion of a call to fflush() or fclose( ) on the same stream or a call to exit( ) or abort( ). _____________________________________________________________________________ OBJECTION Enhancement Request Number 45 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 45) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1245 Line: 38572-38573 Section: read Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, where nbyte is greater than 0, read() shall mark for update the st_atime field of the file, and shall return the number of bytes read. to: Upon successful completion, where nbyte is greater than 0, read( ) shall mark for update the last data access timestamp of the file, and shall return the number of bytes read. _____________________________________________________________________________ OBJECTION Enhancement Request Number 46 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 46) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1248 Line: 38699-38700 Section: Problem: Fine Grain timestamp updates Action: Change from: Note that a read( ) of zero bytes does not modify st_atime. A read() that requests more than zero bytes, but returns zero, shall modify st_atime. to: Note that a read( ) of zero bytes does not modify the last data access timestamp. A read( ) that requests more than zero bytes, but returns zero, is required to modify the last data access timestamp. _____________________________________________________________________________ OBJECTION Enhancement Request Number 47 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 47) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1252 Line: 38837-38838 Section: readdir Problem: Fine Grain timestamp updates Action: Change from: The readdir( ) function may buffer several directory entries per actual read operation; readdir( ) shall mark for update the st_atime field of the directory each time the directory is actually read. to: The readdir( ) function may buffer several directory entries per actual read operation; readdir( ) shall mark for update the last data access timestamp of the directory each time the directory is actually read. _____________________________________________________________________________ OBJECTION Enhancement Request Number 48 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 48) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1253 Line: 38856-38858 Section: readdir_r Problem: Fine Grain timestamp updates Action: Change from: The readdir_r( ) function may buffer several directory entries per actual read operation; the readdir_r( ) function shall mark for update the st_atime field of the directory each time the directory is actually read. to: The readdir_r( ) function may buffer several directory entries per actual read operation; the readdir_r( ) function shall mark for update the last data access timestamp of the directory each time the directory is actually read. _____________________________________________________________________________ OBJECTION Enhancement Request Number 49 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 49) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1254 Line: 38924-38926 Section: readdir Problem: Fine Grain timestamp updates Action: Change from: Any wording that required each successful readdir( ) operation to mark the directory st_atime field for update would disallow such historical performance-oriented implementations. to: Any wording that required each successful readdir( ) operation to mark the directory last data access timestamp for update would disallow such historical performance-oriented implementations. _____________________________________________________________________________ OBJECTION Enhancement Request Number 50 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 50) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1260 Line: 39108 Section: readv Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, readv( ) shall mark for update the st_atime field of the file. to: Upon successful completion, readv( ) shall mark for update the last data access timestamp of the file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 51 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 51) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1288 Line: 40059-40060 Section: rename Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, rename( ) shall mark for update the st_ctime and st_mtime fields of the parent directory of each file. to: Upon successful completion, rename( ) shall mark for update the last data modification and last file status change timestamps of the parent directory of each file. _____________________________________________________________________________ OBJECTION Enhancement Request Number 52 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 52) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1290 Line: 40145-40147 Section: rename Problem: Fine Grain timestamp updates Action: Change from: Some implementations mark for update the st_ctime field of renamed files and some do not. Applications which make use of the st_ctime field may behave differently with respect to renamed files unless they are designed to allow for either behavior. to Some implementations mark for update the last file status change timestamp of renamed files and some do not. Applications which make use of the last file status change timestamp may behave differently with respect to renamed files unless they are designed to allow for either behavior. _____________________________________________________________________________ OBJECTION Enhancement Request Number 53 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 53) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1298 Line: 40357-40358 Section: rmdir Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, the rmdir( ) function shall mark for update the st_ctime and st_mtime fields of the parent directory. to: Upon successful completion, the rmdir( ) function shall mark for update the last data modification and last file status change timestamps of the parent directory. _____________________________________________________________________________ OBJECTION Enhancement Request Number 54 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 54) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1629 Line: 50225-50227 Section: truncate Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, if the file size is changed, this function shall mark for update the st_ctime and st_mtime fields of the file, and the S_ISUID and S_ISGID bits of the file mode may be cleared. to: Upon successful completion, if the file size is changed, this function shall mark for update the last data modification and last file status change timestamps of the file, and the S_ISUID and S_ISGID bits of the file mode may be cleared. _____________________________________________________________________________ OBJECTION Enhancement Request Number 55 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 55) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1648 Line: 50665-50667 Section: unlink Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, unlink( ) shall mark for update the st_ctime and st_mtime fields of the parent directory. Also, if the files link count is not 0, the st_ctime field of the file shall be marked for update. to: Upon successful completion, unlink( ) shall mark for update the last data modification and last file status change timestamps of the parent directory. Also, if the files link count is not 0, the last file status change timestamp of the file shall be marked for update. _____________________________________________________________________________ OBJECTION Enhancement Request Number 56 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 56) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1658 Line: 50965-50966 Section: utime Problem: Fine Grain timestamp updates Action: Mark as OB _____________________________________________________________________________ OBJECTION Enhancement Request Number 57 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 57) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1658 Line: 50979-50980 Section: utime Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, utime( ) shall mark the time of the last file status change, st_ctime, to be updated; see . to: Upon successful completion, utime( ) shall mark the last file status change timestamp for update; see . _____________________________________________________________________________ OBJECTION Enhancement Request Number 58 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 58) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1659 Line: 51012-51016 Section: utime Problem: Fine Grain timestamp updates Action: Change from: The actime structure member must be present so that an application may set it, even though an implementation may ignore it and not change the access time on the file. If an application intends to leave one of the times of a file unchanged while changing the other, it should use stat( ) to retrieve the file's st_atime and st_mtime parameters, set actime and modtime in the buffer, and change one of them before making the utime( ) call. to: The actime structure member must be present so that an application may set it, even though an implementation may ignore it and not change the last data access timestamp on the file. If an application intends to leave one of the times of a file unchanged while changing the other, it should use stat() or fstat() to retrieve the file's st_atim and st_mtim parameters, set actime and modtime in the buffer, and change one of them before making the utime() call. _____________________________________________________________________________ OBJECTION Enhancement Request Number 59 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 59) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1659 Line: 51010 Section: utime Problem: Fine Grain timestamp updates Action: Change from: None. to: Since the utimbuf structure only contains time_t variables, and is not accurate to fractions of a seconds, applications should use utimensat(). also at line 51020, add utimensat() to the SEE ALSO section. _____________________________________________________________________________ OBJECTION Enhancement Request Number 60 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 60) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Replace entire NAME, SYNOPSIS, and DESCRIPTION sections with: NAME utimensat, utimes set file access and modification times relative to directory file descriptor SYNOPSIS #include int utimensat(int fd, const char *path, const struct timespec times[2]); [XSI] #include int utimes(const char *path, const struct timeval times[2]); [/XSI] DESCRIPTION The utimensat( ) function shall set the access and modification times of the file pointed to by the path argument to the value of the times argument. The utimensat( ) function allows time specifications accurate to the nanosecond. For utimensat( ), the times argument is an array of two timespec structures. The first array member represents the date and time of last access, and the second member represents the date and time of last modification. The times in the timespec structure are measured in seconds and nanoseconds since the Epoch. The file's relevant timestamp shall be set to the greatest value supported by the file system that is not greater than the specified time If the tv_nsec field of a struct timespec has the special value UTIME_NOW, the file's relevant timestamp shall be set to the greatest value supported by the file system that is not greater than the current time. If the tv_nsec field has the special value, UTIME_OMIT the file's relevant timestamp shall not be changed. In either case, the tv_sec field shall be ignored. If the times argument is a null pointer, both the access and modification timestamps shall be set to the greatest value supported by the file system that is not greater than the current time. If path specifies a relative path, the file to be used shall be relative to the directory associated with the file descriptor fd instead of the current working directory. If utimensat() is passed the special value AT_FDCWD in the fd parameter, the current working directory shall be used. Only a process with the effective user ID equal to the user ID of the file, or with write access to the file, or with appropriate privileges may use utimensat() with a null pointer as the times argument or with both tv_nsec fields set to the special value UTIME_NOW. Only a process with the effective user ID equal to the user ID of the file or with appropriate privileges may use utimensat() with a non-null times argument that does not have both tv_nsec fields set to UTIME_NOW and does not have both tv_nsec fields set to UTIME_OMIT. If both tv_nsec fields are set to UTIME_OMIT, no ownership or permissions check shall be performed for the file, but other error conditions may still be detected (including EACCES errors related to the path prefix). Upon completion, utimensat( ) shall mark the last file status change timestamp for update. The utimes( ) function shall be equivalent to the utimensat() function with the special value AT_FDCWD as the fd argument, except that the times argument is a struct timeval rather than struct timespec, and accuracy is only to the microsecond, not nanosecond, and rounding towards the nearest second may occur Add to RATIONALE section. The standard developers considered including a special case for the permissions required by utimensat() when one tv_nsec field is UTIME_NOW and the other is UTIME_OMIT. One possibility would be to include this case in with the cases where times is a null pointer or both fields are UTIME_NOW, where the call is allowed if the process has write permission for the file. However, associating write permission with an update to just the last data access timestamp (which is normally updated by read()) did not seem appropriate. The other possibility would be to specify that this one case is allowed if the process has read permission, but this was felt to be too great a departure from the utime() and utimes() functions on which utimensat() is based. If an application needs to set the last data access timestamp to the current time for a file on which it has read permission but is not the owner, it can do so by opening the file, reading one or more bytes (or reading a directory entry, if the file is a directory), and then closing it. _____________________________________________________________________________ Page: 1660 Line: 51034-51059 Section: times Problem: Fine Grain timestamp updates Action: Replace entire NAME, SYNOPSIS, and DESCRIPTION sections with: NAME utimensat, utimes set file access and modification times relative to directory file descriptor SYNOPSIS #include int utimensat(int fd, const char *path, const struct timespec times[2]); [XSI OB] int utimes(const char *path, const struct timeval times[2]); [/XSI] DESCRIPTION The utimensat( ) function shall set the access and modification times of the file pointed to by the path argument to the value of the times argument. The utimensat( ) function allows time specifications accurate to the nanosecond. For utimensat( ), the times argument is an array of two timespec structures. The first array member represents the date and time of last access, and the second member represents the date and time of last modification. The times in the timespec structure are measured in seconds and nanoseconds since the Epoch, although rounding toward the nearest second may occur. If the tv_nsec field of a struct timespec has the special value UTIME_NOW, the structure stands for the current time. If it has the special value UTIME_OMIT, the file's relevant timestamp is not changed. In either case, the tv_sec field is ignored. If the times argument is a null pointer, the access and modification times of the file shall be set to the current time. If path specifies a relative path, the file to be used is relative to the directory associated with the file descriptor fd instead of the current working directory. If utimensat() is passed the special value AT_FD_CWD in the fd parameter, the current working directory is used. The effective user ID of the process shall match the owner of the file, or has write access to the file or appropriate privileges to use this call in this manner. Upon completion, utimensat( ) shall mark the last file status change timestamp for update. The utimes( ) function shall be equivalent to the utimensat() function with the special value AT_FDCWD as the fd argument, except that the times arument is a struct timeval rather than struct timespec, and accuracy is only to the microsecond, not nanosecond. _____________________________________________________________________________ OBJECTION Enhancement Request Number 61 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 61) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: change from: [EACCES] Search permission is denied by a component of the path prefix; or the times argument is a null pointer and the effective user ID of the process does not match the owner of the file and write access is denied. to: [EACCES] Search permission is denied by a component of the path prefix; or the times argument is a null pointer, or both tv_nsec values are UTIME_NOW, and the effective user ID of the process does not match the owner of the file and write access is denied. and add: [EINVAL] Either of the times argument structures specified a tv_nsec value that was neither UTIME_NOW nor UTIME_OMIT and was a value less than zero or a value greater than or equal to 1 000 million [EINVAL] A new file timestamp would be a value whose tv_sec component is not a value supported by file system. (editors to check whether we need additional commas in the first EINVAL case , or whether it would be be better as a bullet list) _____________________________________________________________________________ Page: 1660 Line: 51065-51067 Section: utimes Problem: Fine Grain timestamp updates Action: change from: [EACCES] Search permission is denied by a component of the path prefix; or the times argument is a null pointer and the effective user ID of the process does not match the owner of the file and write access is denied. to: [EACCES] Search permission is denied by a component of the path prefix; or the times argument is a null pointer, or both tv_nsec values are UTIME_NOW, and the effective user ID of the process does not match the owner of the file and write access is denied. and add: [EINVAL] Either of the times argument structures specified a tv_nsec value less than zero that was not UTIME_NOW or UTIME_OMIT, or a value greater than or equal to 1 000 million. [EINVAL] A new file timestamp would be a value whose tv_sec component is not a value supported by file system. _____________________________________________________________________________ OBJECTION Enhancement Request Number 62 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 62) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Action: Change from: [EPERM] The times argument is not a null pointer and the calling process' effective user ID has write access to the file but does not match the owner of the file and the calling process does not have the appropriate privileges. to: [EPERM] The times argument is not a null pointer, does not have both tv_nsec fields set to UTIME_NOW, does not have both tv_nsec fields set to UTIME_OMIT, the calling process' effective user ID has write access to the file but does not match the owner of the file, and the calling process does not have the appropriate privileges. _____________________________________________________________________________ Page: 1661 Line: 51075-51077 Section: utimes Problem: Fine Grain timestamp updates Action: Change from: [EPERM] The times argument is not a null pointer and the calling process' effective user ID has write access to the file but does not match the owner of the file and the calling process does not have the appropriate privileges. to: [EPERM] The times argument is not a null pointer, and either of the tv_nsec fields is not UTIME_OMIT, and the calling process' effective user ID has write access to the file but does not match the owner of the file and the calling process does not have the appropriate privileges. _____________________________________________________________________________ OBJECTION Enhancement Request Number 63 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 63) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1661 Line: 51079 Section: utimes Problem: Fine Grain timestamp updates Action: Change "futimesat()" to "utimensat()". _____________________________________________________________________________ OBJECTION Enhancement Request Number 64 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 64) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Change "futimesat()" to "utimensat()". In addition change the APPLICATION USAGE from: For applications portability, the utime() function should be used to set file access and modification times instead of utimes(). To: None. _____________________________________________________________________________ Page: 1661 Line: 51088 Section: utimes Problem: Fine Grain timestamp updates Action: Change "futimesat()" to "utimensat()". [See mail seq 10330: In addition change the APPLICATION USAGE from: For applications portability, the utime() function should be used to set file access and modification times instead of utimes(). To: None. ] _____________________________________________________________________________ OBJECTION Enhancement Request Number 65 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 65) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1661 Line: 51097 Section: utimes Problem: Fine Grain timestamp updates Action: Change "futimesat()" to "utimensat()". _____________________________________________________________________________ OBJECTION Enhancement Request Number 66 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 66) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1661 Line: 51100 Section: utimes Problem: Fine Grain timestamp updates Action: Change "futimesat()" to "utimensat()". (also change the change history for Issue 7) _____________________________________________________________________________ OBJECTION Enhancement Request Number 67 nick:xxxxxxxxxx Fine grain timestamp updates (rdvk# 67) _____________________________________________________________________________ Accept_X___ Accept as marked below_____ Duplicate_____ Reject_____ Rationale for rejected or partial changes: _____________________________________________________________________________ Page: 1757 Line: 53751-53753 Section: write Problem: Fine Grain timestamp updates Action: Change from: Upon successful completion, where nbyte is greater than 0, write( ) shall mark for update the st_ctime and st_mtime fields of the file, and if the file is a regular file, the S_ISUID and S_ISGID bits of the file mode may be cleared. to: Upon successful completion, where nbyte is greater than 0, write( ) shall mark for update the last data modification and last file status change timestamps of the file, and if the file is a regular file, the S_ISUID and S_ISGID bits of the file mode may be cleared. _____________________________________________________________________________ OBJECTION Enhancement Request Number 68 AG:xxxxxxxxxx Fine grain timestamp updates (rdvk# 68) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Take the change below, plus add to RATIONALE for fpathconf() The EOVERFLOW error for _PC_TIMESTAMP_RESOLUTION cannot occur on POSIX compliant file systems because POSIX requires a timestamp resolution no larger than one second. Even on 32 bit systems this can be represented without overflow. _____________________________________________________________________________ Page: 418 Line: 0 Section: fpathconf Problem: Fine Grain timestamp updates Action: In XSH page 418 add a line to the table _POSIX_TIMESTAMP_RESOLUTION | _PC_TIMESTAMP_RESOLUTION | 1 Add to the ERRORS section Add two shall fails one each for pathconf/fpathconf shall fail [EOVERFLOW] The value of name is _PC_TIMESTAMP_RESOLUTION and the resolution is larger than LONG_MAX CROSS VOLUME CHANGE Add to XBD 414 Change 14404-14405 from If the following constant is defined in the header, it applies to files and all paths in all file systems on the implementation: To: If the following constants are defined in the header, they apply to files and all paths in all file systems on the implementation: New line before 14406 in alphabetic order _POSIX_TIMESTAMP_RESOLUTION The resolution in nanoseconds for all file timestamps Change 14406 _POSIX2_SYMLINKS Symbolic links can be created. New line 14532 Add _PC_TIMESTAMP_RESOLUTION _____________________________________________________________________________ OBJECTION Enhancement Request Number 69 AG:xxxxxxxxxx Fine grain timestamp updates (rdvk# 69) _____________________________________________________________________________ Accept_____ Accept as marked below_X___ Duplicate_____ Reject_____ Rationale for rejected or partial changes: Take the changes in the action plus there are some additional changes to earlier aardvark. These are recorded separately here so as to make it simpler for the editors who have already applied the aardvark to draft 3. There are some more changes needed for futimens(): In XBDfg ERN 1 change: lstat(), fsync(), utime(), utimensat(), or utimes() to: lstat(), fsync(), futimens(), utime(), utimensat(), or utimes() In XBDfg ERN 7 as well as adding the utimensat() prototype, add: int futimens(int, const struct timespec [2]); at the correct alphabetical place. In XBDfg ERN 8 change: for use with the utimensat() function to: for use with the futimens() and utimensat() functions In XSHfg ERN 1 also add futimens() to the function list. In XSHfg ERN 2 also add futimens() to the function list. In XSHfg ERN 3 also add futimens() to the function list. Change to XBD fcntl.h Add utimensat() to the list of functions on 7756 page 223 XBD The header shall define the following as a value for the flag used by fstatat( ), fchmodat( ), and fchownat( ): 7803 page 224 XBD fcntl.h Change APP USAGE from None to Although no existing implementation defines AT_SYMLINK_FOLLOW and AT_SYMLINK_NOFOLLOW as the same numeric value, the standard does not prohibit that as the two constants are not used with the same interfaces. _____________________________________________________________________________ Page: 0 Line: 0 Section: futimes (utimes/utimesnsat) - rename the page futimes(), places in the right order - add after the #include (line 4): int futimens(int fd, const struct timespec times[2]); - change the utimensat() prototype to int utimensat(int fd, const char *path, const struct timespec times[2], int flag); - Change the first paragraph of the description from The utimensat() function shall set the access and modification times of the file pointed to by the path argument to the value of the times argument. The utimensat( ) function allows time specifications accurate to the nanosecond. to The futimens() and utimensat() functions shall set the access and modification times of a file to the values of the times argument. futimes() changes the times of the file associated with the file descriptor fd. utimensat() changes the times of the file pointed to by the path argument, relative to the directory associated with the file descriptor fd. Both functions allow time specifications accurate to the nanosecond. - change the beginning of the second paragraph (line 12) from For utimensat(), to For futimens() and utimensat(), - in line 22 change If path specifies a relative path, to If utimensat() is passed a relative path in the path argument, - add a new paragraph after line 34: Values for the flag argument of utimensat() are constructed by a bitwise-inclusive OR of flags from the following list, defined in : AT_SYMLINK_NOFOLLOW If path names a symbolic link, then the access and modification times of the symbolic link are changed. - In line 35 change Upon completion, utimensat() shall mark to Upon completion, futimens() and utimensat() shall mark - in the errors section, remove from the EACCES description Search permission is denied by a component of the path prefix, or - create new sub-section: The utimensat() and utimes() functions shall fail if: [EACCES] Search permission is denied by a component of the path prefix. - move the ELOOP, ENAMETOOLONG, ENOENT, ENOTDIR entries from the first error sectin ("These functions shall fail if") to the new section. - after line 66 add: The futimens() function shall fail if: [EBADF] The fd argument is not a valid file descriptor. - in the SEE ALSO section add - in the change history add: The futimens() function is added. The utimensat() function is changed to allow modifying a symbolic link by adding a flag argument.