Changeset 90 in libcf for trunk/src/cf_file.c
- Timestamp:
- 05/18/13 18:57:13 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/cf_file.c
r86 r90 8 8 9 9 #include <stdio.h> 10 #include <fcntl.h> 10 11 #include <errno.h> 11 12 #include <sys/stat.h> … … 51 52 return CF_ERROR_FILE_INVALID_ARGS 52 53 54 static int 55 CF_File_Local_ConvertFlag (const CF_FILE_FLAG flag) 56 { 57 int result = 0; 58 59 if (flag & CF_FILE_READ) result |= O_RDONLY; 60 if (flag & CF_FILE_WRITE) result |= O_WRONLY; 61 if (flag & CF_FILE_RW) result |= O_RDWR; 62 if (flag & CF_FILE_CREATE) result |= O_CREAT; 63 if (flag & CF_FILE_TRUNC) result |= O_TRUNC; 64 if (flag & CF_FILE_APPEND) result |= O_APPEND; 65 66 return result; 67 } 68 53 69 /** 54 70 * 파일 열기 … … 69 85 ASSERT_ARGS (path == NULL); 70 86 71 result = open (path, (int)(flag|O_BINARY)); 72 87 result = open (path, CF_File_Local_ConvertFlag (flag) | O_BINARY); 73 88 if (result < 0) 74 89 return CF_ERROR_FILE_OPEN; … … 88 103 { 89 104 int result = 0; 105 int flag = 0; 90 106 91 107 ASSERT_ARGS (path == NULL); 92 108 93 result = open (path, CF_FILE_CREATE|CF_FILE_WRITE|CF_FILE_TRUNC, FILE_MODE); 94 109 flag = CF_File_Local_ConvertFlag (CF_FILE_CREATE| 110 CF_FILE_WRITE | 111 CF_FILE_TRUNC); 112 113 result = open (path, flag, FILE_MODE); 95 114 if (result < 0) 96 115 return CF_ERROR_FILE_CREATE; … … 114 133 115 134 result = close (fd); 116 117 135 if (result < 0) 118 136 return CF_ERROR_FILE_CLOSE; … … 141 159 142 160 result = (int) read (fd, buf, len); 143 144 161 if (result < 0) 145 162 return CF_ERROR_FILE_READ; … … 168 185 169 186 result = (int) write (fd, buf, len); 170 171 187 if (result != len) 172 188 return CF_ERROR_FILE_WRITE; … … 190 206 191 207 result = (int) lseek (fd, 0, SEEK_END); 192 193 208 if (result < 0 || lseek (fd, 0, SEEK_SET) < 0) 194 209 return CF_ERROR_FILE_GET_SIZE;
Note:
See TracChangeset
for help on using the changeset viewer.