|
1 /** @file ../include/unistd.h |
|
2 @internalComponent |
|
3 */ |
|
4 |
|
5 /** @fn access(const char *fn, int flags) |
|
6 @param fn |
|
7 @param flags |
|
8 |
|
9 @return Upon successful completion, the value 0 is returned; otherwise the |
|
10 value -1 is returned and the global variable errno is set to indicate the |
|
11 error. |
|
12 |
|
13 The access system calls check the accessibility of the file named in the fn argument for the access permissions indicated by the flags argument. |
|
14 The value of flags is either the bitwise-inclusive OR of the access permissions to be |
|
15 checked (R_OK for read permission, W_OK for write permission, and X_OK for execute/search permission), or the existence test ( F_OK. ) |
|
16 |
|
17 For additional information on file access permissions see File Access Permissions. |
|
18 |
|
19 Examples: |
|
20 @code |
|
21 /* Detailed description: This sample code checks read-ok accessibility of file Example.c |
|
22 * |
|
23 * Precondtions: Example.txt file should be present in working directory. |
|
24 */ |
|
25 #include <unistd.h> |
|
26 int main() |
|
27 { |
|
28 if(access("Example.c" ,R_OK) < 0) |
|
29 { |
|
30 printf("Read operation on the file is not permitted") ; |
|
31 return -1 ; |
|
32 } |
|
33 printf("Read operation permitted on Example.c file") ; |
|
34 return 0 ; |
|
35 } |
|
36 |
|
37 @endcode |
|
38 Output |
|
39 @code |
|
40 Read operation permitted on Example.c file |
|
41 |
|
42 @endcode |
|
43 |
|
44 Limitations: |
|
45 |
|
46 The fn parameter should not exceed 256 characters in length. |
|
47 |
|
48 KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
49 not found or filesystem not mounted on the drive. |
|
50 |
|
51 @see chmod() |
|
52 @see stat() |
|
53 |
|
54 |
|
55 |
|
56 @capability Deferred @ref RFs::Entry(const TDesC16&, TEntry&) |
|
57 |
|
58 @publishedAll |
|
59 @externallyDefinedApi |
|
60 */ |
|
61 |
|
62 /** @fn chdir(const char *_path) |
|
63 @param _path |
|
64 |
|
65 Note: This description also covers the following functions - |
|
66 fchdir() |
|
67 |
|
68 @return Upon successful completion, the value 0 is returned; otherwise the |
|
69 value -1 is returned and the global variable errno is set to indicate the |
|
70 error. |
|
71 |
|
72 The path argument points to the pathname of a directory. |
|
73 The chdir system call |
|
74 causes the named directory |
|
75 to become the current working directory, that is, |
|
76 the starting point for path searches of pathnames not beginning with a slash, ‘/.’ |
|
77 |
|
78 The fchdir system call causes the directory referenced by the file descriptor fd to become the current working directory, the starting point for path |
|
79 searches of pathnames not beginning with a slash, ‘/.’ |
|
80 |
|
81 |
|
82 |
|
83 Examples: |
|
84 @code |
|
85 /* |
|
86 * Detailed description : This test code demonstrates usage of chdir system call |
|
87 * |
|
88 * Preconditions : "Example" directory should be present in current working |
|
89 directory. |
|
90 */ |
|
91 #include <unistd.h> |
|
92 int main() |
|
93 { |
|
94 if(chdir("Example") < 0 ) |
|
95 { |
|
96 printf("Failed to change working directory"); |
|
97 return -1 ; |
|
98 } |
|
99 printf("Working directory changed"); |
|
100 return 0 ; |
|
101 } |
|
102 |
|
103 @endcode |
|
104 Output |
|
105 @code |
|
106 Working directory changed |
|
107 |
|
108 @endcode |
|
109 @code |
|
110 #include<unistd.h> |
|
111 #include<stdio.h> |
|
112 int test_fchdir() |
|
113 { |
|
114 int retVal; |
|
115 int rmdr; |
|
116 int mkdr = mkdir("test_dir", S_IWUSR); |
|
117 if( !mkdr ) |
|
118 { |
|
119 int opn = open("test_dir", O_RDONLY); |
|
120 if( opn != -1 ) |
|
121 { |
|
122 retVal = fchdir( opn ); |
|
123 if( !retVal ) |
|
124 { |
|
125 printf("Fchdir passed"); |
|
126 } |
|
127 else |
|
128 { |
|
129 printf("Failed"); |
|
130 } |
|
131 int cls = close(opn); |
|
132 } |
|
133 else |
|
134 { |
|
135 printf("Failed"); |
|
136 } |
|
137 rmdr = rmdir("test_dir"); |
|
138 } |
|
139 else |
|
140 { |
|
141 printf("Failed"); |
|
142 } |
|
143 } |
|
144 |
|
145 @endcode |
|
146 Output |
|
147 @code |
|
148 Fchdir passed |
|
149 |
|
150 @endcode |
|
151 |
|
152 Limitations: |
|
153 |
|
154 The path parameter should not exceed 256 characters in length. |
|
155 KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
156 not found or filesystem not mounted on the drive. |
|
157 |
|
158 @capability Deferred @ref RFs::SetSessionPath(const TDesC16&) |
|
159 @capability Deferred @ref RFs::Att(const TDesC16&, unsigned&) |
|
160 |
|
161 @publishedAll |
|
162 @externallyDefinedApi |
|
163 */ |
|
164 |
|
165 /** @fn chown(const char *path, uid_t owner, gid_t group) |
|
166 @param path |
|
167 @param owner |
|
168 @param group |
|
169 |
|
170 Note: This description also covers the following functions - |
|
171 lchown() |
|
172 |
|
173 @return These functions always return 0. |
|
174 |
|
175 |
|
176 |
|
177 The chown and lchown functions are build supported but not available functionally. |
|
178 |
|
179 Symbian OS does not support the concepts of multiple users and groups. |
|
180 |
|
181 Limitations: |
|
182 |
|
183 KErrNotReady of symbian error code is mapped to ENOENT, which typically means drive |
|
184 not found or filesystem not mounted on the drive. |
|
185 |
|
186 |
|
187 |
|
188 |
|
189 @publishedAll |
|
190 @externallyDefinedApi |
|
191 */ |
|
192 |
|
193 /** @fn close(int fd) |
|
194 @param fd |
|
195 @return The close() function returns the value 0 if successful; otherwise it returns |
|
196 the value -1 and sets the global variable errno to indicate the error. |
|
197 |
|
198 The close system call deletes a descriptor from the per-process object reference |
|
199 table. If this is the last reference to the underlying object the object will |
|
200 be deactivated. For example, on the last close of a file the current seek pointer associated with the file is lost; on the last close of a socket any file descriptor for that file is closed by that process. |
|
201 |
|
202 If 'fd' refers to a shared memory object that is still referenced at the last close, the |
|
203 contents of the memory object persists till it is unreferenced. |
|
204 If this is the last close of the shared memory object and the close results in unreferencing of the memory |
|
205 object and the memory object is unlinked, (only in this scenario) the memory object is removed. |
|
206 |
|
207 When a process exits all associated file descriptors are freed. As there is |
|
208 a limit on active descriptors per processes the close system call is useful when a large quantity of file descriptors |
|
209 are being handled. |
|
210 |
|
211 |
|
212 |
|
213 Examples: |
|
214 @code |
|
215 /* Detailed description : This test code demonstrates usage of close system call |
|
216 * |
|
217 * Preconditions : None. |
|
218 */ |
|
219 #include <stdio.h> |
|
220 #include <unistd.h> |
|
221 #include <sys/types.h> |
|
222 #include <fcntl.h> |
|
223 int main() |
|
224 { |
|
225 int fd = 0; |
|
226 fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); |
|
227 if(fd < 0 ) |
|
228 { |
|
229 printf("Failed to open file Example.txt"); |
|
230 return -1; |
|
231 } |
|
232 if(close(fd) < 0 ) |
|
233 { |
|
234 printf("Failed to close file Example.txt"); |
|
235 return -1; |
|
236 } |
|
237 printf("File Example.txt closed" ); |
|
238 return 0; |
|
239 } |
|
240 |
|
241 @endcode |
|
242 Output |
|
243 @code |
|
244 File Example.txt closed |
|
245 |
|
246 @endcode |
|
247 @see accept() |
|
248 @see fcntl() |
|
249 @see flock() |
|
250 @see open() |
|
251 @see pipe() |
|
252 @see socket() |
|
253 @see shm_open() |
|
254 @see shm_unlink() |
|
255 |
|
256 |
|
257 @publishedAll |
|
258 @externallyDefinedApi |
|
259 */ |
|
260 |
|
261 /** @fn dup(int aFid) |
|
262 @param aFid |
|
263 |
|
264 Note: This description also covers the following functions - |
|
265 dup2() |
|
266 |
|
267 @return The value -1 is returned if an error occurs in either call. |
|
268 The external variable errno indicates the cause of the error. |
|
269 |
|
270 The dup system call |
|
271 duplicates an existing object descriptor and returns its value to |
|
272 the calling process ( newd = dup (aFid, ).); The argument aFid is a small non-negative integer index in |
|
273 the per-process descriptor table. |
|
274 |
|
275 The new descriptor returned by the call |
|
276 is the lowest numbered descriptor |
|
277 currently not in use by the process. |
|
278 |
|
279 The object referenced by the descriptor does not distinguish |
|
280 between aFid and newd in any way. |
|
281 Thus if newd and aFid are duplicate references to an open |
|
282 file, read , write and lseek calls all move a single pointer into the file, |
|
283 and append mode, non-blocking I/O and asynchronous I/O options |
|
284 are shared between the references. |
|
285 If a separate pointer into the file is desired, a different |
|
286 object reference to the file must be obtained by issuing an |
|
287 additional open system call. |
|
288 |
|
289 In dup2, the value of the new descriptor newd is specified. |
|
290 If this descriptor is already in use and oldd != newd, the descriptor is first deallocated as if the close system call had been used. |
|
291 If aFid is not a valid descriptor, then newd is not closed. |
|
292 If aFid == newd and aFid is a valid descriptor, then dup2 is successful, and does nothing. |
|
293 |
|
294 Limitation: |
|
295 |
|
296 @code |
|
297 dup2(int oldfd, int newfd); |
|
298 @endcode |
|
299 The return value of dup2 can be different |
|
300 from the one user expected to be (newfd). Users of dup2 must therefor use the |
|
301 return value of dup2 as the new allocated fd rather than the one passed in (newfd). |
|
302 As described above, if dup2 is successful the newfd and return values are the |
|
303 same, . |
|
304 |
|
305 Examples: |
|
306 @code |
|
307 /* |
|
308 *Detailed description : Sample usage of dup system call |
|
309 */ |
|
310 #include <unistd.h> |
|
311 #include <fcntl.h> |
|
312 #include <stdio.h> |
|
313 int main() |
|
314 { |
|
315 int fd; |
|
316 FILE *Fil; |
|
317 int Newfd; |
|
318 fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); |
|
319 if(fd < 0 ) { |
|
320 printf("Failed to open file Example.txt"); |
|
321 return -1; |
|
322 } |
|
323 Newfd = dup(fd ); |
|
324 if(Newfd < 0 ) |
|
325 { |
|
326 printf("Failed to duplicate file descriptor"); |
|
327 return -1 ; |
|
328 } |
|
329 close(fd); |
|
330 close(Newfd); |
|
331 printf("New Duped fd is %d" , Newfd); |
|
332 return 0; |
|
333 } |
|
334 |
|
335 @endcode |
|
336 Output |
|
337 @code |
|
338 New Duped fd is 4 |
|
339 |
|
340 @endcode |
|
341 @code |
|
342 /* |
|
343 *Detailed description : Sample usage of dup system call |
|
344 */ |
|
345 #include <unistd.h> |
|
346 #include <fcntl.h> |
|
347 #include <errno.h> |
|
348 #include <stdio.h> |
|
349 int main() |
|
350 { |
|
351 int fd; |
|
352 FILE *Fil; |
|
353 int Newfd; |
|
354 fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); |
|
355 if(fd < 0 ) { |
|
356 printf("Failed to open file Example.txt"); |
|
357 return -1; |
|
358 } |
|
359 Newfd = dup2(fd , 4); |
|
360 if(Newfd < 0 ) { |
|
361 printf("Failed to duplicate file descriptor"); |
|
362 return -1; |
|
363 } |
|
364 close(fd); |
|
365 close(Newfd); |
|
366 printf("New Duped fd is %d" , Newfd); |
|
367 return 0; |
|
368 } |
|
369 |
|
370 @endcode |
|
371 Output |
|
372 @code |
|
373 New Duped fd is 4 |
|
374 |
|
375 @endcode |
|
376 @see accept() |
|
377 @see close() |
|
378 @see fcntl() |
|
379 @see getdtablesize() |
|
380 @see open() |
|
381 @see pipe() |
|
382 @see socket() |
|
383 |
|
384 |
|
385 |
|
386 |
|
387 @publishedAll |
|
388 @externallyDefinedApi |
|
389 */ |
|
390 |
|
391 /** @fn dup2(int aFid1, int aFid2) |
|
392 @param aFid1 |
|
393 @param aFid2 |
|
394 |
|
395 Refer to dup() for the documentation |
|
396 @see accept() |
|
397 @see close() |
|
398 @see fcntl() |
|
399 @see getdtablesize() |
|
400 @see open() |
|
401 @see pipe() |
|
402 @see socket() |
|
403 |
|
404 |
|
405 |
|
406 |
|
407 @publishedAll |
|
408 @externallyDefinedApi |
|
409 */ |
|
410 |
|
411 /** @fn fpathconf(int fd, int name) |
|
412 @param fd |
|
413 @param name |
|
414 |
|
415 Refer to pathconf() for the documentation |
|
416 |
|
417 |
|
418 |
|
419 |
|
420 @publishedAll |
|
421 @externallyDefinedApi |
|
422 */ |
|
423 |
|
424 /** @fn getcwd(char *_buf, size_t _size) |
|
425 @param _buf |
|
426 @param _size |
|
427 @return Upon successful completion a pointer to the pathname is returned. Otherwise |
|
428 a NULL pointer is returned and the global variable errno is set to indicate the error. In addition, getwd copies the error message associated with errno into the memory referenced by buf. |
|
429 |
|
430 The getcwd function copies the absolute pathname of the current working directory |
|
431 into the memory referenced by buf and returns a pointer to buf. The size argument is the _size, in bytes, of the array referenced by buf. |
|
432 |
|
433 If _buf is NULL, space is allocated as indicated by size to store the pathname and the current working directory is |
|
434 returned as long as the _size bytes are sufficient to hold the working directory name. |
|
435 This space may later be free’d. |
|
436 |
|
437 This routine has traditionally been used by programs to save the |
|
438 name of a working directory for the purpose of returning to it. |
|
439 A much faster and less error-prone method of accomplishing this is to |
|
440 open the current directory ((‘.’) and use the fchdir function to return. |
|
441 |
|
442 Examples: |
|
443 @code |
|
444 #include<unistd.h> |
|
445 #include<stdio.h> |
|
446 #include <stdlib.h> |
|
447 #define BUF_SIZE 100 |
|
448 |
|
449 int main() |
|
450 { |
|
451 //change directory to c: |
|
452 int c; |
|
453 long size = BUF_SIZE; |
|
454 char *buf = NULL; |
|
455 char *ptr = NULL; |
|
456 |
|
457 c = chdir("c:\"); |
|
458 |
|
459 buf = (char *)malloc((size_t)size); |
|
460 |
|
461 if (buf != NULL && c == 0) |
|
462 { |
|
463 //call getcwd to fetch teh current directory |
|
464 ptr = getcwd(buf, (size_t)size); |
|
465 printf("getcwd returned: %s", ptr); |
|
466 } |
|
467 |
|
468 return 0; |
|
469 } |
|
470 |
|
471 @endcode |
|
472 Output |
|
473 @code |
|
474 getcwd returned: c: |
|
475 |
|
476 @endcode |
|
477 |
|
478 Notes: |
|
479 |
|
480 The getcwd function |
|
481 returns the default working directory as c:\\private\\XXXXXXXX (where XXXXXXXX is the UID of the process) as the default session path is |
|
482 initialised to c:\\private\\current_process'_UID, in case of Symbian OS. |
|
483 @see chdir() |
|
484 @see malloc() |
|
485 @see strerror() |
|
486 |
|
487 |
|
488 |
|
489 |
|
490 @publishedAll |
|
491 @externallyDefinedApi |
|
492 */ |
|
493 |
|
494 /** @fn getegid(void) |
|
495 Refer to getgid() for the documentation |
|
496 |
|
497 |
|
498 |
|
499 |
|
500 @publishedAll |
|
501 @externallyDefinedApi |
|
502 */ |
|
503 |
|
504 /** @fn geteuid(void) |
|
505 Refer to getuid() for the documentation |
|
506 |
|
507 |
|
508 |
|
509 |
|
510 @publishedAll |
|
511 @externallyDefinedApi |
|
512 */ |
|
513 |
|
514 /** @fn getgid(void) |
|
515 |
|
516 |
|
517 Note: This description also covers the following functions - |
|
518 getegid() |
|
519 |
|
520 @return These functions always return 0. |
|
521 |
|
522 getgid and getegid are build supported but not available functionally. Symbian OS |
|
523 does not support multiple users and groups. |
|
524 |
|
525 |
|
526 |
|
527 |
|
528 |
|
529 @publishedAll |
|
530 @externallyDefinedApi |
|
531 */ |
|
532 |
|
533 |
|
534 /** @fn getgroups(int size, gid_t grouplist[]) |
|
535 @param size |
|
536 @param grouplist |
|
537 @return These functions always return 0. |
|
538 |
|
539 The getgroups function build supported but not available functionally. Symbian |
|
540 OS does not support multiple users and groups. |
|
541 |
|
542 |
|
543 |
|
544 |
|
545 |
|
546 |
|
547 |
|
548 @publishedAll |
|
549 @externallyDefinedApi |
|
550 */ |
|
551 |
|
552 /** @fn getpgrp(void) |
|
553 Note: This description also covers the following functions - |
|
554 getpgid() |
|
555 |
|
556 @return These functions always return 0. |
|
557 |
|
558 getpgrp and getpgid are build supported but not available functionally. Symbian OS |
|
559 does not support multiple users and groups. |
|
560 |
|
561 |
|
562 |
|
563 |
|
564 |
|
565 |
|
566 |
|
567 @publishedAll |
|
568 @externallyDefinedApi |
|
569 */ |
|
570 |
|
571 /** @fn getpid(void) |
|
572 |
|
573 Note: This description also covers the following functions - |
|
574 getppid() |
|
575 |
|
576 The getpid system call returns the process ID of the calling process. Though |
|
577 the ID is guaranteed to be unique it should NOT be used for constructing temporary file names for security reasons; |
|
578 see mkstemp instead. |
|
579 |
|
580 The getppid system call |
|
581 returns the process ID of the parent |
|
582 of the calling process. |
|
583 |
|
584 Examples: |
|
585 @code |
|
586 /* |
|
587 * Detailed description : Sample usage of getpid system call |
|
588 */ |
|
589 #include <unistd.h> |
|
590 int main() |
|
591 { |
|
592 pid_t pid ; |
|
593 if((pid = getpid()) < 0 ) |
|
594 { |
|
595 printf("getpid system call failed") ; |
|
596 return -1 ; |
|
597 } |
|
598 printf("pid of this process is %d " , pid) ; |
|
599 return 0 ; |
|
600 } |
|
601 |
|
602 @endcode |
|
603 |
|
604 |
|
605 |
|
606 |
|
607 @publishedAll |
|
608 @externallyDefinedApi |
|
609 */ |
|
610 |
|
611 /** @fn getppid(void) |
|
612 Refer to getpid() for the documentation |
|
613 |
|
614 |
|
615 |
|
616 |
|
617 @publishedAll |
|
618 @externallyDefinedApi |
|
619 */ |
|
620 |
|
621 /** @fn getuid(void) |
|
622 Note: This description also covers the following functions - |
|
623 geteuid() |
|
624 |
|
625 @return These functions always return 0. |
|
626 |
|
627 getuid and geteuid are build supported but not available functionally. Symbian OS |
|
628 does not support multiple users and groups. |
|
629 |
|
630 |
|
631 |
|
632 |
|
633 |
|
634 @publishedAll |
|
635 @externallyDefinedApi |
|
636 */ |
|
637 |
|
638 /** @fn isatty(int fd) |
|
639 @param fd |
|
640 @return The isatty returns 1 if fd is an open descriptor connected to a terminal; returns 0 otherwise. |
|
641 |
|
642 This function operate on the system file descriptors for character special devices. |
|
643 |
|
644 The isatty function |
|
645 determines if the file descriptor fd refers to a valid |
|
646 terminal type device. |
|
647 |
|
648 Examples: |
|
649 @code |
|
650 #include<unistd.h> |
|
651 #include<stdio.h> |
|
652 #include<fcntl.h> //O_APPEND |
|
653 |
|
654 int main() |
|
655 { |
|
656 int x = isatty(0); //stdin (fd = 0) |
|
657 int y = isatty(1); //stdout (fd = 1) |
|
658 int z = isatty(2); //stderr (fd = 2) |
|
659 |
|
660 printf("{Expected: 1 1 1} %d %d %d", x, y, z); |
|
661 |
|
662 int i = isatty(5); //some invalid fd |
|
663 |
|
664 int fd_file = open("c:\some.txt", O_APPEND); |
|
665 |
|
666 int j = isatty(fd_file); //valid fd of a text file |
|
667 |
|
668 int fd_pipe[3]; |
|
669 int p = pipe(fd_pipe); |
|
670 |
|
671 int k = isatty(fd_pipe[1]); //valid fd of a pipe |
|
672 |
|
673 close(fd_file); |
|
674 close(fd_pipe[0]); |
|
675 close(fd_pipe[1]); |
|
676 |
|
677 printf("{Expected: 0 0 0} %d %d %d", i, j, k); |
|
678 |
|
679 unlink("c:\some.txt"); |
|
680 |
|
681 return 0; |
|
682 } |
|
683 |
|
684 @endcode |
|
685 Output |
|
686 @code |
|
687 {Expected: 1 1 1} 1 1 1 |
|
688 {Expected: 0 0 0} 0 0 0 |
|
689 |
|
690 @endcode |
|
691 @see ioctl() |
|
692 |
|
693 |
|
694 |
|
695 |
|
696 @publishedAll |
|
697 @externallyDefinedApi |
|
698 */ |
|
699 |
|
700 /** @fn link(const char *oldpath, const char *newpath) |
|
701 @param oldpath |
|
702 @param newpath |
|
703 @return Returns 0 on successful completion. Otherwise returns -1 and sets errno to indicate the error. |
|
704 |
|
705 The link system call atomically creates the specified directory entry (hard |
|
706 link) newpath with the attributes of the underlying object pointed at by oldpath. Note that if the link is successful the link count of the underlying |
|
707 object is not incremented: On Symbian OS link functionality is simulated and the |
|
708 underlying object is not aware of a existing link. Link is supported only on regular files and fifos. It is not on directories. Creation |
|
709 of link on a existing link file is not supported. |
|
710 |
|
711 If oldpath is removed, the file newpath is also deleted as the platform recognizes the underlying object only by oldpath. |
|
712 |
|
713 The object pointed at by the oldpath argument must exist for the hard link to succeed and both oldpath and newpath must be in the same file system. The oldpath argument may not be a directory. Creation time stamp of the file |
|
714 is not supported and access time stamp is equal to modification time stamp. |
|
715 A newly created file will not alter the time stamp of parent directory. |
|
716 |
|
717 Examples: |
|
718 @code |
|
719 /* |
|
720 * Detailed description : Example to create link to a file |
|
721 * Precondition : "Parent.txt" should exist in c: drive |
|
722 * |
|
723 */ |
|
724 #include <unistd.h> |
|
725 #include <stdio.h> |
|
726 int main(void) |
|
727 { |
|
728 if(link("C:\Parent.txt","C:\Link") < 0) |
|
729 { |
|
730 printf("Link creation to parent file failed"); |
|
731 return -1; |
|
732 } |
|
733 printf("Link to parent file created"); |
|
734 return 0; |
|
735 } |
|
736 |
|
737 @endcode |
|
738 Output |
|
739 @code |
|
740 Link to parent file created. |
|
741 |
|
742 @endcode |
|
743 |
|
744 Limitations: |
|
745 |
|
746 - The oldpath and newpath parameters of the link() function should not exceed 256 characters in length. |
|
747 - P.I.P.S. only simulates link files and does not distinguish between hard and symbolic links. |
|
748 |
|
749 - KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
750 not found or filesystem not mounted on the drive. |
|
751 |
|
752 @see readlink() |
|
753 @see symlink() |
|
754 @see unlink() |
|
755 |
|
756 |
|
757 |
|
758 @capability Deferred @ref RFs::Delete(const TDesC16&) |
|
759 |
|
760 @publishedAll |
|
761 @externallyDefinedApi |
|
762 */ |
|
763 |
|
764 /** @fn lseek(int fd, off_t pos, int whence) |
|
765 @param fd |
|
766 @param pos |
|
767 @param whence |
|
768 @return Upon successful completion, lseek returns the resulting offset location as measured in bytes from the beginning of the file. Otherwise, a value of -1 is returned and errno is set to indicate the error. |
|
769 |
|
770 The lseek system call repositions the offset of the file descriptor fildes to the argument offset according to the directive whence. The argument fildes must be an open file descriptor. The lseek system call repositions the file position pointer associated with the file descriptor fildes as follows: |
|
771 If whence is SEEK_SET, the offset is set to offset bytes. |
|
772 If whence is SEEK_CUR, the offset is set to its current location plus offset bytes. |
|
773 If whence is SEEK_END, the offset is set to the size of the file plus offset bytes. |
|
774 Some devices are incapable of seeking. The value of the pointer associated with such a device is undefined. |
|
775 |
|
776 If 'fd' refers to a shared memory object then lseek() on the shared memory object is supported by the current implementation. |
|
777 |
|
778 Note : lseek function allows the file offset to be set beyond the existing end-of-file, data in the seeked slot is undefined, and hence the read operation in seeked slot is undefined untill data is actually written into it. lseek beyond existing end-of-file increases the file size accordingly. |
|
779 |
|
780 Errors: |
|
781 |
|
782 The lseek system call will fail and the file position pointer will remain unchanged if: |
|
783 [EBADF] The fildes argument is not an open file descriptor. |
|
784 [EINVAL] The whence argument is not a proper value or the resulting file offset would be negative for a non-character special file. |
|
785 [EOVERFLOW] The resulting file offset would be a value which cannot be represented correctly in an object of type off_t(Not supported). |
|
786 [ESPIPE] The fildes argument is associated with a pipe, socket, or FIFO. |
|
787 |
|
788 Examples: |
|
789 @code |
|
790 /* |
|
791 * Detailed description : Example for lseek usage. |
|
792 */ |
|
793 #include <stdio.h> |
|
794 #include <sys/stat.h> |
|
795 #include <fcntl.h> |
|
796 #include <sys/types.h> |
|
797 int main() |
|
798 { |
|
799 int fd = 0; |
|
800 fd = open("lseek.txt" , O_CREAT | O_RDWR , 0666); |
|
801 if(lseek(fd , 0 , SEEK_SET) < 0 ) { |
|
802 printf("Lseek on file lseek.txt failed \n"); |
|
803 return -1; |
|
804 } |
|
805 printf("Lseek on lseek.txt passed "); |
|
806 return 0; |
|
807 } |
|
808 |
|
809 @endcode |
|
810 Output |
|
811 @code |
|
812 Lseek on lseek.txt passed |
|
813 @endcode |
|
814 |
|
815 @see dup() |
|
816 @see open() |
|
817 |
|
818 |
|
819 |
|
820 @publishedAll |
|
821 @externallyDefinedApi |
|
822 */ |
|
823 |
|
824 /** @fn lseek64(int fildes, off64_t offset, int whence) |
|
825 @param fildes |
|
826 @param offset |
|
827 @param whence |
|
828 @return Upon successful completion, lseek64 returns the resulting offset location as measured in bytes from the |
|
829 beginning of the file. |
|
830 Otherwise, |
|
831 a value of -1 is returned and errno is set to indicate |
|
832 the error. |
|
833 |
|
834 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
835 |
|
836 @see lseek() |
|
837 |
|
838 |
|
839 @publishedAll |
|
840 @externallyDefinedApi |
|
841 */ |
|
842 |
|
843 /** @fn pathconf(const char *path, int name) |
|
844 @param path |
|
845 @param name |
|
846 |
|
847 Note: This description also covers the following functions - |
|
848 fpathconf() |
|
849 |
|
850 @return If the call to pathconf or fpathconf is not successful, -1 is returned and errno is set appropriately. |
|
851 Otherwise, if the variable is associated with functionality that does |
|
852 not have a limit in the system, -1 is returned and errno is not modified. |
|
853 Otherwise, the current variable value is returned. |
|
854 |
|
855 The pathconf and fpathconf system calls provide a method for applications to determine the current |
|
856 value of a configurable system limit or option variable associated |
|
857 with a pathname or file descriptor. |
|
858 |
|
859 For pathconf, the path argument is the name of a file or directory. |
|
860 For fpathconf, the fd argument is an open file descriptor. |
|
861 The name argument specifies the system variable to be queried. |
|
862 Symbolic constants for each name value are found in the include file \<unistd.h\>. |
|
863 |
|
864 The available values are as follows: |
|
865 @code |
|
866 _PC_LINK_MAX |
|
867 The maximum file link count. |
|
868 _PC_MAX_CANON |
|
869 The maximum number of bytes in terminal canonical input line. |
|
870 _PC_MAX_INPUT |
|
871 The minimum maximum number of bytes for which space is available in a terminal input queue. |
|
872 _PC_NAME_MAX |
|
873 The maximum number of bytes in a file name. |
|
874 _PC_PATH_MAX |
|
875 The maximum number of bytes in a pathname. |
|
876 _PC_PIPE_BUF |
|
877 The maximum number of bytes which will be written atomically to a pipe. |
|
878 _PC_CHOWN_RESTRICTED |
|
879 Return 1 if appropriate privilege is required for the chown system call, otherwise 0. -p1003.1-2001 requires appropriate privilege in all cases, but this behavior was optional in prior editions of the standard. |
|
880 _PC_NO_TRUNC |
|
881 Return greater than zero if attempts to use pathname components longer than |
|
882 .Brq Dv NAME_MAX will result in an [ENAMETOOLONG] error; otherwise, such components will be truncated to |
|
883 .Brq Dv NAME_MAX. -p1003.1-2001 requires the error in all cases, but this behavior was optional in prior editions of the standard, and some non- POSIX -compliant file systems do not support this behavior. |
|
884 _PC_VDISABLE |
|
885 Returns the terminal character disabling value. |
|
886 _PC_ASYNC_IO |
|
887 Return 1 if asynchronous I/O is supported, otherwise 0. |
|
888 _PC_PRIO_IO |
|
889 Returns 1 if prioritised I/O is supported for this file, otherwise 0. |
|
890 _PC_SYNC_IO |
|
891 Returns 1 if synchronised I/O is supported for this file, otherwise 0. |
|
892 _PC_ALLOC_SIZE_MIN |
|
893 Minimum number of bytes of storage allocated for any portion of a file. |
|
894 _PC_FILESIZEBITS |
|
895 Number of bits needed to represent the maximum file size. |
|
896 _PC_REC_INCR_XFER_SIZE |
|
897 Recommended increment for file transfer sizes between _PC_REC_MIN_XFER_SIZE and _PC_REC_MAX_XFER_SIZE. |
|
898 _PC_REC_MAX_XFER_SIZE |
|
899 Maximum recommended file transfer size. |
|
900 _PC_REC_MIN_XFER_SIZE |
|
901 Minimum recommended file transfer size. |
|
902 _PC_REC_XFER_ALIGN |
|
903 Recommended file transfer buffer alignment. |
|
904 _PC_SYMLINK_MAX |
|
905 Maximum number of bytes in a symbolic link. |
|
906 _PC_ACL_EXTENDED |
|
907 Returns 1 if an Access Control List (ACL) can be set on the specified file, otherwise 0. |
|
908 _PC_ACL_PATH_MAX |
|
909 Maximum number of ACL entries per file. |
|
910 _PC_CAP_PRESENT |
|
911 Returns 1 if a capability state can be set on the specified file, otherwise 0. |
|
912 _PC_INF_PRESENT |
|
913 Returns 1 if an information label can be set on the specified file, otherwise 0. |
|
914 _PC_MAC_PRESENT |
|
915 Returns 1 if a Mandatory Access Control (MAC) label can be set on the specified file, otherwise 0. |
|
916 @endcode |
|
917 |
|
918 Errors: |
|
919 |
|
920 If any of the following conditions occur, the pathconf and fpathconf system calls shall return -1 and set errno to the corresponding value. |
|
921 [EINVAL] The value of the name argument is invalid. |
|
922 [EINVAL] The implementation does not support an association of the variable name with the associated file. |
|
923 The pathconf system call will fail if: |
|
924 [ENOTDIR] A component of the path prefix is not a directory. |
|
925 [ENAMETOOLONG] A component of a pathname exceeded |
|
926 .Brq Dv NAME_MAX characters (but see _PC_NO_TRUNC above), or an entire path name exceeded |
|
927 .Brq Dv PATH_MAX characters. |
|
928 [ENOENT] The named file does not exist. |
|
929 [EACCES] Search permission is denied for a component of the path prefix. |
|
930 [ELOOP] Too many symbolic links were encountered in translating the pathname. |
|
931 [EIO] An I/O error occurred while reading from or writing to the file system. |
|
932 The fpathconf system call will fail if: |
|
933 [EBADF] The fd argument is not a valid open file descriptor. |
|
934 [EIO] An I/O error occurred while reading from or writing to the file system. |
|
935 |
|
936 Examples: |
|
937 @code |
|
938 #include<unistd.h> |
|
939 #include<stdio.h> |
|
940 int test_pathconf() |
|
941 { |
|
942 int fp = open("test_pathconf1.txt", O_RDWR|O_CREAT); |
|
943 if(fp != -1) |
|
944 { |
|
945 int n = pathconf("test_pathconf1.txt", _PC_LINK_MAX); |
|
946 if( n < _POSIX_LINK_MAX ) |
|
947 { |
|
948 return -1; |
|
949 } |
|
950 else |
|
951 { |
|
952 printf("_PC_LINK_MAX value: %d", n); |
|
953 printf("Pathconf passed"); |
|
954 return 0; |
|
955 } |
|
956 } |
|
957 else |
|
958 { |
|
959 printf("failed"); |
|
960 return -1; |
|
961 } |
|
962 } |
|
963 |
|
964 @endcode |
|
965 Output |
|
966 @code |
|
967 _PC_LINK_MAX value: 1 |
|
968 Pathconf passed |
|
969 |
|
970 @endcode |
|
971 |
|
972 |
|
973 Note: |
|
974 |
|
975 @code |
|
976 The current implementation of the functions pathconf and fpathconf considers only the following configurable variables. _PC_LINK_MAX _PC_MAX_CANON _PC_MAX_INPUT _PC_NAME_MAX _PC_PATH_MAX _PC_PIPE_BUF _PC_CHOWN_RESTRICTED _PC_NO_TRUNC _PC_VDISABLE Also, these functions return the limits as required by the POSIX |
|
977 standard instead of the actual system limits determined on the run. |
|
978 @endcode |
|
979 |
|
980 |
|
981 |
|
982 @publishedAll |
|
983 @externallyDefinedApi |
|
984 */ |
|
985 |
|
986 /** @fn pipe(int *fildes) |
|
987 @param fildes |
|
988 @return The pipe function returns the value 0 if successful; otherwise the |
|
989 value -1 is returned and errno is set to indicate the error. |
|
990 |
|
991 The pipe system call |
|
992 creates a pipe, which is an object allowing |
|
993 bidirectional data flow, |
|
994 and allocates a pair of file descriptors. |
|
995 |
|
996 By convention, the first descriptor is normally used as the read end of the pipe, and the second is normally the write end, so that data written to fildes[1] appears on (i.e. can be read from) fildes[0]. This allows the output of one thread to be sent to another |
|
997 thread: the source's standard output is set up to be the write end of the |
|
998 pipe and the sink's standard input is set up to be the read end of the |
|
999 pipe. The pipe itself persists until all its associated descriptors are closed. |
|
1000 |
|
1001 A pipe that has had an end closed is considered widowed. Writing on such a pipe causes the writing process to fail and errno is set to EPIPE . Widowing a pipe is the only way to deliver end-of-file to a |
|
1002 reader: After the reader consumes any buffered data, reading a widowed pipe |
|
1003 returns a zero count. |
|
1004 |
|
1005 Examples: |
|
1006 @code |
|
1007 #include <unistd.h> |
|
1008 #include <stdio.h> |
|
1009 |
|
1010 int main(void) |
|
1011 { |
|
1012 int fds[2]; |
|
1013 if (pipe(fds) == -1) { |
|
1014 printf("Pipe creation failed"); |
|
1015 } |
|
1016 /* fds[0] - opened for read */ |
|
1017 /* fds[1] - opened for write */ |
|
1018 close(fds[0]); |
|
1019 close(fds[1]); |
|
1020 return 0; |
|
1021 } |
|
1022 |
|
1023 @endcode |
|
1024 @see read() |
|
1025 @see write() |
|
1026 |
|
1027 |
|
1028 |
|
1029 |
|
1030 @publishedAll |
|
1031 @externallyDefinedApi |
|
1032 */ |
|
1033 |
|
1034 /** @fn read(int fd, void *buf, size_t cnt) |
|
1035 @param fd |
|
1036 @param buf |
|
1037 @param cnt |
|
1038 |
|
1039 Note: This description also covers the following functions - |
|
1040 readv() |
|
1041 |
|
1042 @return If successful, the number of bytes actually read is returned. Upon reading |
|
1043 end-of-file, zero is returned. Otherwise, -1 is returned and the global variable errno is set to indicate the error. |
|
1044 |
|
1045 The read system call |
|
1046 attempts to read cnt bytes of data from the object referenced by the descriptor fd into the buffer pointed to by buf. The readv system call |
|
1047 performs the same action, but scatters the input data |
|
1048 into the iovcnt buffers specified by the members of the iov array: iov[0], iov[1], ..., iov[iovcnt-1]. |
|
1049 |
|
1050 For readv the iovec structure is defined as: |
|
1051 |
|
1052 struct iovec { |
|
1053 void *iov_base; // Base address. |
|
1054 size_t iov_len; // Length. |
|
1055 }; |
|
1056 |
|
1057 Each iovec entry specifies the base address and length of an area |
|
1058 in memory where data should be placed. |
|
1059 The readv system call |
|
1060 will always fill an area completely before proceeding |
|
1061 to the next. |
|
1062 |
|
1063 On objects capable of seeking, the read starts at a position |
|
1064 given by the pointer associated with fd (see lseek ) |
|
1065 Upon return from read, the pointer is incremented by the number of bytes actually read. |
|
1066 |
|
1067 If 'fd' refers to a shared memory object then read() on the shared memory object is supported by the current implementation. |
|
1068 |
|
1069 Objects that are not capable of seeking always read from the current |
|
1070 position. |
|
1071 The value of the pointer associated with such an |
|
1072 object is undefined. |
|
1073 |
|
1074 Upon successful completion, read, and readv return the number of bytes actually read and placed in the buffer. |
|
1075 The system guarantees to read the number of bytes requested if |
|
1076 the descriptor references a normal file that has that many bytes left |
|
1077 before the end-of-file, but in no other case. |
|
1078 |
|
1079 Errors: |
|
1080 |
|
1081 The read, and readv system calls will succeed unless: |
|
1082 [EBADF] The d argument is not a valid file or socket descriptor open for reading. |
|
1083 [ECONNRESET]The d argument refers to a socket, and the remote socket end is forcibly closed. |
|
1084 [EFAULT] The buf argument points outside the allocated address space(Not supported). |
|
1085 [EIO] An I/O error occurred while reading from the file system(Not supported). |
|
1086 [EINTR] A read from a slow device was interrupted before any data arrived by the delivery of a signal(Not supported). |
|
1087 [EINVAL] The pointer associated with d was negative. |
|
1088 [EAGAIN] The file was marked for non-blocking I/O, and no data were ready to be read. |
|
1089 [EISDIR] The file descriptor is associated with a directory residing on a file system that does not allow regular read operations on directories (e.g. NFS)(Not supported). |
|
1090 [EOPNOTSUPP] The file descriptor is associated with a file system and file type that do not allow regular read operations on it(Not supported). |
|
1091 [EOVERFLOW] The file descriptor is associated with a regular file, nbytes is greater than 0, offset is before the end-of-file, and offset is greater than or equal to the offset maximum established for this file system(Not supported). |
|
1092 [EINVAL] The value nbytes is greater than INT_MAX. |
|
1093 In addition, readv and preadv may return one of the following errors: |
|
1094 [EINVAL] The iovcnt argument was less than or equal to 0, or greater than IOV_MAX. |
|
1095 [EINVAL] One of the iov_len values in the iov array was negative. |
|
1096 [EINVAL] The sum of the iov_len values in the iov array overflowed a 32-bit integer. |
|
1097 [EFAULT] Part of the iov array points outside the process’s allocated address space. |
|
1098 |
|
1099 Examples: |
|
1100 @code |
|
1101 /* Detailed description :This example demonstrates usage of read-system call, this |
|
1102 * Example reads 10 bytes from a file specified |
|
1103 * |
|
1104 * Preconditions: Example.txt file should be present in C: and should contain |
|
1105 * string Hello World. |
|
1106 * |
|
1107 */ |
|
1108 #include <unistd.h> |
|
1109 #include <sys/types.h> |
|
1110 #include <sys/stat.h> |
|
1111 #include <fcntl.h> |
|
1112 int main() |
|
1113 { |
|
1114 int fd = 0; |
|
1115 char Buff[12] = {0}; |
|
1116 |
|
1117 fd = open("C:\Example.txt" , O_RDONLY ); |
|
1118 |
|
1119 if(fd < 0 ) { |
|
1120 printf("Failed to open C:\Example.txt file"); |
|
1121 return -1; |
|
1122 } |
|
1123 |
|
1124 if(read(fd , Buff , 11) < 11) { |
|
1125 printf("Failed to read specified number of bytes from file"); |
|
1126 return -1; |
|
1127 } |
|
1128 |
|
1129 printf("file contains %s |
|
1130 " , Buff); |
|
1131 return 0; |
|
1132 } |
|
1133 |
|
1134 @endcode |
|
1135 Output |
|
1136 @code |
|
1137 file contains Hello World |
|
1138 |
|
1139 @endcode |
|
1140 @code |
|
1141 /* |
|
1142 * Detailed description: Sample usage of readv system call |
|
1143 * Preconditions: Example.txt file should be present in working directory containing Hello world in it |
|
1144 * |
|
1145 */ |
|
1146 #include <stdio.h> |
|
1147 #include <sys/types.h> |
|
1148 #include <sys/uio.h> |
|
1149 #include <fcntl.h> |
|
1150 int main() |
|
1151 { |
|
1152 int fd = 0; |
|
1153 struct iovec io_vec[1]; |
|
1154 char Buf[12] = { 0 }; |
|
1155 io_vec[0].iov_base = Buf; |
|
1156 io_vec[0].iov_len = 11; |
|
1157 fd = open("Example.txt" , O_RDONLY ); |
|
1158 if(fd < 0 ) { |
|
1159 printf("File open failed"); |
|
1160 return -1; |
|
1161 } |
|
1162 if(readv(fd , io_vec , 1) < 11 ) { |
|
1163 printf("Failed to read fron Example.txt file"); |
|
1164 return -1; |
|
1165 } |
|
1166 printf("Read succes %s" , io_vec[0].iov_base); |
|
1167 return 0; |
|
1168 } |
|
1169 |
|
1170 @endcode |
|
1171 Output |
|
1172 @code |
|
1173 Read succes Hello World |
|
1174 |
|
1175 @endcode |
|
1176 @see dup() |
|
1177 @see fcntl() |
|
1178 @see getdirentries() |
|
1179 @see open() |
|
1180 @see pipe() |
|
1181 @see select() |
|
1182 @see socket() |
|
1183 @see socketpair() |
|
1184 @see fread() |
|
1185 @see readdir() |
|
1186 |
|
1187 |
|
1188 |
|
1189 |
|
1190 @publishedAll |
|
1191 @externallyDefinedApi |
|
1192 */ |
|
1193 |
|
1194 /** @fn rmdir(const char *_path) |
|
1195 @param _path |
|
1196 @return The rmdir() function returns the value 0 if successful; otherwise the |
|
1197 value -1 is returned and the global variable errno is set to indicate the |
|
1198 error. |
|
1199 |
|
1200 The rmdir system call removes a directory file whose name is given by path. |
|
1201 The directory must not have any entries other than '.' and '..'. |
|
1202 Examples: |
|
1203 @code |
|
1204 /* |
|
1205 * Detailed description: This test code demonstrates usage of rmdir systemcall, it removes directory |
|
1206 * Example from the current working directory. |
|
1207 * |
|
1208 * Preconditions: Expects empty directory "Example" in current working directory. |
|
1209 */ |
|
1210 #include <unistd.h> |
|
1211 int main() |
|
1212 { |
|
1213 if(rmdir("Example") < 0 ) |
|
1214 { |
|
1215 printf("Rmdir failed"); |
|
1216 return -1; |
|
1217 } |
|
1218 printf("Directory Example removed"); |
|
1219 return 0; |
|
1220 } |
|
1221 |
|
1222 @endcode |
|
1223 Output |
|
1224 Directory Example removed |
|
1225 @code |
|
1226 |
|
1227 @endcode |
|
1228 |
|
1229 Limitations: |
|
1230 |
|
1231 The _path parameter of the rmdir() function should not exceed 256 characters in length. |
|
1232 |
|
1233 KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
1234 not found or filesystem not mounted on the drive. |
|
1235 |
|
1236 @capability Deferred @ref RFs::RmDir(const TDesC16&) |
|
1237 @capability Deferred @ref RFs::Att(const TDesC16&, unsigned&) |
|
1238 |
|
1239 @publishedAll |
|
1240 @externallyDefinedApi |
|
1241 */ |
|
1242 |
|
1243 /** @fn setgid(gid_t gid) |
|
1244 @param gid |
|
1245 |
|
1246 Refer to setuid() for the documentation |
|
1247 |
|
1248 |
|
1249 |
|
1250 |
|
1251 @publishedAll |
|
1252 @externallyDefinedApi |
|
1253 */ |
|
1254 |
|
1255 /** @fn setpgid(pid_t pid, pid_t pgid) |
|
1256 @param pid |
|
1257 @param pgid |
|
1258 |
|
1259 Note: This description also covers the following functions - |
|
1260 setpgrp() |
|
1261 |
|
1262 @return These functions always return 0. |
|
1263 |
|
1264 These functions are build supported but not available functionally. Symbian |
|
1265 OS does not support multiple users and groups. |
|
1266 |
|
1267 |
|
1268 |
|
1269 |
|
1270 |
|
1271 @publishedAll |
|
1272 @externallyDefinedApi |
|
1273 */ |
|
1274 |
|
1275 /** @fn setsid(void) |
|
1276 |
|
1277 @return These functions always return 0. |
|
1278 |
|
1279 These functions are build supported but not available functionally. Symbian |
|
1280 OS does not support multiple users and groups. |
|
1281 |
|
1282 |
|
1283 |
|
1284 |
|
1285 |
|
1286 @publishedAll |
|
1287 @externallyDefinedApi |
|
1288 */ |
|
1289 |
|
1290 /** @fn setuid(uid_t uid) |
|
1291 @param uid |
|
1292 |
|
1293 Note: This description also covers the following functions - |
|
1294 seteuid() setgid() setegid() |
|
1295 |
|
1296 @return These functions always return 0. |
|
1297 |
|
1298 These functions are build supported but not available functionally. Symbian |
|
1299 OS does not support multiple users and groups. |
|
1300 |
|
1301 |
|
1302 |
|
1303 |
|
1304 |
|
1305 @publishedAll |
|
1306 @externallyDefinedApi |
|
1307 */ |
|
1308 |
|
1309 /** @fn sleep(unsigned int secs) |
|
1310 @param secs |
|
1311 @return If the sleep function returns because the requested time has elapsed, the value |
|
1312 returned will be zero. |
|
1313 |
|
1314 The sleep function suspends execution of the calling process until seconds seconds have elapse |
|
1315 |
|
1316 Time interval is internally represented using 32 bit value(range +-2147483647). |
|
1317 Any time interval greater 2147483647 returns 0 without sleeping. Hence Maximum |
|
1318 sleep time supported here is 35 minutes, 47 seconds. |
|
1319 |
|
1320 |
|
1321 |
|
1322 Examples: |
|
1323 @code |
|
1324 /* |
|
1325 * Detailed description: This test code shows usage of sleep system call , here sample code |
|
1326 * sleeps for 2 seconds. |
|
1327 */ |
|
1328 #include <unistd.h> |
|
1329 int main() |
|
1330 { |
|
1331 if(sleep(2) < 0 ) |
|
1332 { |
|
1333 printf("Sleep failed"); |
|
1334 return -1; |
|
1335 } |
|
1336 printf("Sleep successful"); |
|
1337 return 0; |
|
1338 } |
|
1339 |
|
1340 @endcode |
|
1341 Output |
|
1342 @code |
|
1343 Sleep successful |
|
1344 |
|
1345 @endcode |
|
1346 @see nanosleep() |
|
1347 |
|
1348 |
|
1349 |
|
1350 |
|
1351 @publishedAll |
|
1352 @externallyDefinedApi |
|
1353 */ |
|
1354 |
|
1355 /** @fn sysconf(int name) |
|
1356 @param name |
|
1357 @return If the call to sysconf is not successful, -1 is returned and errno is set appropriately. |
|
1358 Otherwise, if the variable is associated with functionality that is not |
|
1359 supported, -1 is returned and errno is not modified. |
|
1360 Otherwise, the current variable value is returned. |
|
1361 |
|
1362 This interface is defined by -p1003.1-88 .A far more complete interface is available using sysctl. |
|
1363 |
|
1364 |
|
1365 The sysconf function provides a method for applications to determine the |
|
1366 current value of a configurable system limit or option variable. The name argument specifies the system variable to be queried. Symbolic |
|
1367 constants for each name value are found in the include file \#include \<unistd.h\> . Shell programmers who need access |
|
1368 to these parameters should use the getconf utility. |
|
1369 |
|
1370 The available values are as follows: |
|
1371 @code |
|
1372 _SC_ARG_MAX |
|
1373 The maximum number of argument to execve. |
|
1374 _SC_CHILD_MAX |
|
1375 The maximum number of simultaneous processes per user id.(Not supported) |
|
1376 _SC_CLK_TCK |
|
1377 The frequency of the statistics clock in ticks per second. |
|
1378 _SC_IOV_MAX |
|
1379 The maximum number of elements in the I/O vector used by readv , writev , recvmsg , |
|
1380 and sendmsg . |
|
1381 _SC_NGROUPS_MAX |
|
1382 The maximum number of supplemental groups.(Not supported) |
|
1383 _SC_NPROCESSORS_CONF |
|
1384 The number of processors configured.(Not supported) |
|
1385 _SC_NPROCESSORS_ONLN |
|
1386 The number of processors currently online.(Not supported) |
|
1387 _SC_OPEN_MAX |
|
1388 The maximum number of open files per user id.(Not supported) |
|
1389 _SC_STREAM_MAX |
|
1390 The minimum maximum number of streams that a process may have open( Not supported) |
|
1391 at any one time. |
|
1392 _SC_TZNAME_MAX |
|
1393 The minimum maximum number of types supported for the name of a |
|
1394 timezone.(Not supported) |
|
1395 _SC_JOB_CONTROL |
|
1396 Return 1 if job control is available on this system, otherwise -1. |
|
1397 _SC_SAVED_IDS |
|
1398 Returns 1 if saved set-group and saved set-user ID is available, |
|
1399 otherwise -1.(Not supported) |
|
1400 _SC_VERSION |
|
1401 The version of -p1003.1 with which the system |
|
1402 attempts to comply.(Not supported) |
|
1403 _SC_BC_BASE_MAX |
|
1404 The maximum ibase/obase values in the bc utility.(Not supported) |
|
1405 _SC_BC_DIM_MAX |
|
1406 The maximum array size in the bc utility.(Not supported) |
|
1407 _SC_BC_SCALE_MAX |
|
1408 The maximum scale value in the bc utility.(Not supported) |
|
1409 _SC_BC_STRING_MAX |
|
1410 The maximum string length in the bc utility.(Not supported) |
|
1411 _SC_COLL_WEIGHTS_MAX |
|
1412 The maximum number of weights that can be assigned to any entry of |
|
1413 the LC_COLLATE order keyword in the locale definition file.(Not supported) |
|
1414 _SC_EXPR_NEST_MAX |
|
1415 The maximum number of expressions that can be nested within |
|
1416 parenthesis by the expr utility.(Not supported) |
|
1417 _SC_LINE_MAX |
|
1418 The maximum length in bytes of a text-processing utility's input |
|
1419 line.(Not supported) |
|
1420 _SC_RE_DUP_MAX |
|
1421 The maximum number of repeated occurrences of a regular expression |
|
1422 permitted when using interval notation.(Not supported) |
|
1423 _SC_2_VERSION |
|
1424 The version of -p1003.2 with which the system attempts to comply.( Not supported) |
|
1425 _SC_2_C_BIND |
|
1426 Return 1 if the system's C-language development facilities support the |
|
1427 C-Language Bindings Option, otherwise -1. |
|
1428 _SC_2_C_DEV |
|
1429 Return 1 if the system supports the C-Language Development Utilities Option, |
|
1430 otherwise -1. |
|
1431 _SC_2_CHAR_TERM |
|
1432 Return 1 if the system supports at least one terminal type capable of |
|
1433 all operations described in -p1003.2 , |
|
1434 otherwise -1. |
|
1435 _SC_2_FORT_DEV |
|
1436 Return 1 if the system supports the FORTRAN Development Utilities Option, |
|
1437 otherwise -1. |
|
1438 _SC_2_FORT_RUN |
|
1439 Return 1 if the system supports the FORTRAN Runtime Utilities Option, |
|
1440 otherwise -1. |
|
1441 _SC_2_LOCALEDEF |
|
1442 Return 1 if the system supports the creation of locales, otherwise -1. |
|
1443 _SC_2_SW_DEV |
|
1444 Return 1 if the system supports the Software Development Utilities Option, |
|
1445 otherwise -1. |
|
1446 _SC_2_UPE |
|
1447 Return 1 if the system supports the User Portability Utilities Option, |
|
1448 otherwise -1. |
|
1449 _SC_PAGESIZE |
|
1450 Returns size of a page in bytes. (Some systems use PAGE_SIZE instead.) |
|
1451 @endcode |
|
1452 |
|
1453 Note: Some of the return values may not be posix compliant. |
|
1454 |
|
1455 Examples: |
|
1456 @code |
|
1457 /* |
|
1458 * Detailed description : This test code demonstrates usage of sysconf system call , here it get max command |
|
1459 line arguments that can be passed to process. |
|
1460 */ |
|
1461 #include <unistd.h> |
|
1462 int main() |
|
1463 { |
|
1464 int ret = 0 ; |
|
1465 ret = sysconf(_SC_ARG_MAX) ; |
|
1466 if(ret < 0 ) { |
|
1467 printf("Sysconf call failed") ; |
|
1468 return -1 ; |
|
1469 } |
|
1470 printf("Max command line arguments = %d" , ret) ; |
|
1471 return 0 ; |
|
1472 } |
|
1473 |
|
1474 @endcode |
|
1475 Output |
|
1476 @code |
|
1477 max-number of commandline args supproted by system. |
|
1478 |
|
1479 @endcode |
|
1480 @see pathconf() |
|
1481 @see confstr() |
|
1482 |
|
1483 |
|
1484 Bugs: |
|
1485 |
|
1486 The value for _SC_STREAM_MAX is a minimum maximum, and is required to be |
|
1487 the same as ANSI C's FOPEN_MAX, so the returned value is a ridiculously small |
|
1488 and misleading number. |
|
1489 |
|
1490 |
|
1491 |
|
1492 @publishedAll |
|
1493 @externallyDefinedApi |
|
1494 */ |
|
1495 |
|
1496 /** @fn unlink(const char *pathname) |
|
1497 @param pathname |
|
1498 @return Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error. |
|
1499 |
|
1500 |
|
1501 The unlink system call removes the link named by pathname from its file system. |
|
1502 |
|
1503 Symbian OS simulates links so there is no reference count and files are unaware |
|
1504 of links. Calling unlink on a file will always close the file, regardless of |
|
1505 whether there is another link. |
|
1506 |
|
1507 The pathname argument may not be a directory. |
|
1508 |
|
1509 Examples: |
|
1510 @code |
|
1511 /* |
|
1512 * Detailed description : Example to unlink a link file |
|
1513 * Precondition : A link file by name "Link" should exist in |
|
1514 * c: drive. |
|
1515 */ |
|
1516 #include <unistd.h> |
|
1517 #include <stdio.h> |
|
1518 int main(void) |
|
1519 { |
|
1520 char rdbuff[25]; |
|
1521 if(unlink("C:\Link")) |
|
1522 { |
|
1523 printf("unlink on link file failed"); |
|
1524 } |
|
1525 printf("Unlink on link file succeeded"); |
|
1526 } |
|
1527 |
|
1528 @endcode |
|
1529 Output |
|
1530 @code |
|
1531 Unlink on link file succeeded. |
|
1532 |
|
1533 @endcode |
|
1534 |
|
1535 Limitations: |
|
1536 |
|
1537 - The path parameter of the unlink() function should not exceed 256 characters in length. |
|
1538 - P.I.P.S. only simulates link files and does not distinguish between hard and symbolic links. |
|
1539 - KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
1540 not found or filesystem not mounted on the drive. |
|
1541 |
|
1542 @see close() |
|
1543 @see link() |
|
1544 @see rmdir() |
|
1545 @see symlink() |
|
1546 |
|
1547 |
|
1548 |
|
1549 @capability Deferred @ref RFs::Att(const TDesC16&, unsigned&) |
|
1550 @capability Deferred @ref RFs::SetAtt(const TDesC16&, unsigned, unsigned) |
|
1551 @capability Deferred @ref RFs::Delete(const TDesC16&) |
|
1552 |
|
1553 @publishedAll |
|
1554 @externallyDefinedApi |
|
1555 */ |
|
1556 |
|
1557 /** @fn write(int fd, const void *buf, size_t cnt) |
|
1558 @param fd |
|
1559 @param buf |
|
1560 @param cnt |
|
1561 |
|
1562 @return Upon successful completion the number of bytes which were written |
|
1563 is returned. |
|
1564 Otherwise a -1 is returned and the global variable errno is set to indicate the error. |
|
1565 |
|
1566 The write system call attempts to write cnt bytes of data to the object referenced by the descriptor fd from the buffer pointed to by buf . |
|
1567 The writev system call performs the same action, but gathers the output data from the iovcnt buffers specified by the members of the iov array: iov[0], iov[1], ..., iov[iovcnt-1]. |
|
1568 The pwrite and pwritev system calls perform the same functions, but write to the specified position in the file without modifying the file pointer. |
|
1569 |
|
1570 Notes: |
|
1571 |
|
1572 1. This description also covers the pwrite(), writev() and pwritev() functions. |
|
1573 |
|
1574 2. An attempt to write on a broken pipe generates the SIGPIPE signal, which may cause termination of the process, if it is not handled. |
|
1575 |
|
1576 For writev and pwritev, the iovec structure is defined as: |
|
1577 |
|
1578 @code |
|
1579 struct iovec { |
|
1580 void *iov_base; //Base address. |
|
1581 size_t iov_len; // Length. |
|
1582 }; |
|
1583 @endcode |
|
1584 |
|
1585 Each iovec entry specifies the base address and length of an area |
|
1586 in memory from which data should be written. |
|
1587 The writev system call |
|
1588 will always write a complete area before proceeding |
|
1589 to the next. |
|
1590 |
|
1591 On objects capable of seeking, the write starts at a position |
|
1592 given by the pointer associated with fd , |
|
1593 see lseek . |
|
1594 Upon return from write , |
|
1595 the pointer is incremented by the number of bytes which were written. |
|
1596 |
|
1597 If 'fd' refers to a shared memory object then write() on the shared memory object is supported by the current implementation. |
|
1598 |
|
1599 Objects that are not capable of seeking always write from the current |
|
1600 position. |
|
1601 The value of the pointer associated with such an object |
|
1602 is undefined. |
|
1603 |
|
1604 When using non-blocking I/O on objects such as sockets that are subject |
|
1605 to flow control, write and writev may write fewer bytes than requested; |
|
1606 the return value must be noted, |
|
1607 and the remainder of the operation should be retried when possible. |
|
1608 |
|
1609 Examples: |
|
1610 @code |
|
1611 /* Detailed description: This sample code creates an Example.txt file in the current working |
|
1612 * directory(if file existes then it is truncated) and writes "Hello World" string |
|
1613 * to the file. |
|
1614 * |
|
1615 * Preconditions: Example.txt if present, it should not be read-only. |
|
1616 */ |
|
1617 int main() |
|
1618 { |
|
1619 int fd = 0 ; |
|
1620 char Buf[] = "Hello World" ; |
|
1621 fd = open("Example.txt" , O_CREAT | O_TRUNC | O_RDWR ,0666) ; |
|
1622 if(fd < 0 ) |
|
1623 { |
|
1624 printf("Failed to open file Example.txt") ; |
|
1625 return -1 ; |
|
1626 } |
|
1627 if(write(fd , Buf , sizeof(Buf)) < sizeof(Buf)) |
|
1628 { |
|
1629 printf("Failed to write string %s to file" , Buf) ; |
|
1630 return -1 ; |
|
1631 } |
|
1632 printf("String %s written to file |
|
1633 " , Buf) ; |
|
1634 return 0 ; |
|
1635 } |
|
1636 |
|
1637 @endcode |
|
1638 Output |
|
1639 @code |
|
1640 String Hello World written to file |
|
1641 |
|
1642 @endcode |
|
1643 @code |
|
1644 /* |
|
1645 * Detailed description : Sample usage of readv system call |
|
1646 */ |
|
1647 #include <stdio.h> |
|
1648 #include <sys/types.h> |
|
1649 #include <sys/uio.h> |
|
1650 #include <fcntl.h> |
|
1651 int main() |
|
1652 { |
|
1653 int fd = 0 ; |
|
1654 struct iovec io_vec[1] ; |
|
1655 char Buf[12] = "Hello world" ; |
|
1656 io_vec[0].iov_base = Buf ; |
|
1657 io_vec[0].iov_len = 11 ; |
|
1658 fd = open("Example.txt" , O_CREAT | O_RDWR , 0666 ) ; |
|
1659 if(fd < 0 ) { |
|
1660 printf("File open failed") ; |
|
1661 return -1 ; |
|
1662 } |
|
1663 if(writev(fd , io_vec , 1) < 11 ) { |
|
1664 printf("Failed to read fron Example.txt file") ; |
|
1665 return -1 ; |
|
1666 } |
|
1667 printf("writev succes %s written" , io_vec[0].iov_base) ; |
|
1668 return 0 ; } |
|
1669 |
|
1670 @endcode |
|
1671 Output |
|
1672 @code |
|
1673 writev succes Hello world written |
|
1674 |
|
1675 @endcode |
|
1676 @see fcntl() |
|
1677 @see lseek() |
|
1678 @see open() |
|
1679 @see pipe() |
|
1680 @see select() |
|
1681 |
|
1682 |
|
1683 |
|
1684 |
|
1685 @publishedAll |
|
1686 @externallyDefinedApi |
|
1687 */ |
|
1688 |
|
1689 /** @fn confstr(int name, char *buf, size_t len) |
|
1690 @param name |
|
1691 @param buf |
|
1692 @param len |
|
1693 @return If the call to confstr is not successful, 0 is returned and errno is set appropriately. |
|
1694 Otherwise, if the variable does not have a configuration defined value, |
|
1695 0 is returned and errno is not modified. |
|
1696 Otherwise, the buffer size needed to hold the entire configuration-defined |
|
1697 value is returned. |
|
1698 If this size is greater than the argument len, the string in buf was truncated. |
|
1699 |
|
1700 The confstr function provides a method for applications to get configuration |
|
1701 defined string values. |
|
1702 |
|
1703 The name argument specifies the system variable to be queried. Symbolic |
|
1704 constants for each name value are found in the include file \#include \<unistd.h.\> The len argument specifies the size of the buffer referenced by the argument buf. If len is non-zero, buf is a non-null pointer, and name has a value, up to len - 1 bytes of the value are copied into the buffer buf. The copied value is always null terminated. |
|
1705 The available values are as follows: |
|
1706 |
|
1707 @code |
|
1708 _CS_PATH |
|
1709 Return a value for the PATH environment variable that finds all the standard utilities. |
|
1710 |
|
1711 @endcode |
|
1712 |
|
1713 Examples: |
|
1714 @code |
|
1715 #include<unistd.h> |
|
1716 #include<stdio.h> |
|
1717 #include <stdlib.h> |
|
1718 |
|
1719 int main() |
|
1720 { |
|
1721 int n = 0; |
|
1722 char *buf = NULL; |
|
1723 int len = 0; |
|
1724 |
|
1725 n = confstr(_CS_PATH, NULL, 0); |
|
1726 |
|
1727 printf("{Expected: 31} %d", n); |
|
1728 |
|
1729 if( n == 0 ) |
|
1730 return -1; |
|
1731 |
|
1732 buf = (char *)malloc(n); |
|
1733 |
|
1734 if ( buf == NULL ) |
|
1735 { |
|
1736 printf("malloc failed!!"); |
|
1737 return -1; |
|
1738 } |
|
1739 |
|
1740 len = confstr(_CS_PATH, buf, n); |
|
1741 |
|
1742 printf("PATH in buffer: \n%s", buf); |
|
1743 printf("length: %d", len); |
|
1744 free(buf); |
|
1745 |
|
1746 return 0; |
|
1747 } |
|
1748 |
|
1749 @endcode |
|
1750 Output |
|
1751 @code |
|
1752 PATH in buffer: |
|
1753 /usr/bin:/bin:/usr/sbin:/sbin: |
|
1754 length: 31 |
|
1755 |
|
1756 @endcode |
|
1757 @see pathconf() |
|
1758 @see sysconf() |
|
1759 |
|
1760 |
|
1761 |
|
1762 |
|
1763 @publishedAll |
|
1764 @externallyDefinedApi |
|
1765 */ |
|
1766 |
|
1767 /** @fn getopt(int nargc, char * const nargv[], const char *ostr) |
|
1768 @param nargc |
|
1769 @param nargv |
|
1770 @param ostr |
|
1771 @return The getopt function returns the next known option character in optstring. If getopt encounters a character not found in optstring or if it detects a missing option argument, it returns ‘?’ (question mark. If optstring has a leading ‘:’ then a missing option argument causes ‘:’ to be returned instead of ‘?.’ In either case, the variable optopt is set to the character that caused the error. The getopt function returns -1 when the argument list is exhausted. |
|
1772 |
|
1773 The getopt function incrementally parses a command line argument list argv and returns the next known option character. An option character is known if it has been specified in the string of accepted option characters, optstring. |
|
1774 |
|
1775 The option string optstring may contain the following elements: individual characters, and characters followed by a colon to indicate an option argument is to follow. For example, an option string x recognizes an option "-x", and an option string x: recognizes an option and argument "-x argument." It does not matter to getopt if a following argument has leading white space. |
|
1776 |
|
1777 On return from getopt, optarg points to an option argument, if it is anticipated, and the variable optind contains the index to the next argv argument for a subsequent call to getopt. The variable optopt saves the last known option character returned by getopt. |
|
1778 |
|
1779 The variables opterr and optind are both initialized to 1. The optind variable may be set to another value before a set of calls to getopt in order to skip over more or less argv entries. |
|
1780 |
|
1781 In order to use getopt to evaluate multiple sets of arguments, or to evaluate a single set of arguments multiple times, the variable optreset must be set to 1 before the second and each additional set of calls to getopt, and the variable optind must be reinitialized. |
|
1782 |
|
1783 The getopt function returns -1 when the argument list is exhausted. The interpretation of options in the argument list may be cancelled by the option ‘--’ (double dash) which causes getopt to signal the end of argument processing and return -1. When all options have been processed (i.e., up to the first non-option argument), getopt returns -1. |
|
1784 |
|
1785 Examples: |
|
1786 @code |
|
1787 #include <unistd.h> |
|
1788 #include <stdio.h> |
|
1789 #include <fcntl.h> |
|
1790 #include <errno.h> |
|
1791 #include <string.h> |
|
1792 |
|
1793 int main() |
|
1794 { |
|
1795 int argc = 3; |
|
1796 |
|
1797 char *argv[] = |
|
1798 { |
|
1799 "getopt","-f","hi" |
|
1800 }; |
|
1801 |
|
1802 int bflag, ch, fd; |
|
1803 bflag = 0; |
|
1804 |
|
1805 while ((ch = getopt(argc, argv, "bf:")) != -1) { |
|
1806 |
|
1807 switch (ch) { |
|
1808 case 'b': |
|
1809 bflag = 1; |
|
1810 printf("option is 'b' \n"); |
|
1811 break; |
|
1812 case 'f': |
|
1813 printf("option is 'f' \n"); |
|
1814 if ((fd = open(optarg, O_RDONLY, 0)) != 0) { |
|
1815 (void)fprintf(stderr, |
|
1816 "myname: %s: %s\n", optarg, strerror(errno)); |
|
1817 } |
|
1818 break; |
|
1819 case '?': |
|
1820 printf("missing option!"); |
|
1821 default: |
|
1822 printf("unknown option!"); |
|
1823 } |
|
1824 |
|
1825 } |
|
1826 argc -= optind; |
|
1827 return 0; |
|
1828 } |
|
1829 |
|
1830 @endcode |
|
1831 Output |
|
1832 @code |
|
1833 option is ’f’ |
|
1834 myname: hi: No such file or directory |
|
1835 @endcode |
|
1836 @see getopt_long() |
|
1837 |
|
1838 Bugs: |
|
1839 |
|
1840 The getopt function was once specified to return EOF instead of -1. This was changed by -p1003.2-92 to decouple getopt from |
|
1841 \#include \<stdio.h\> |
|
1842 |
|
1843 A single dash "-" may be specified as a character in optstring, however it should never have an argument associated with it. This allows getopt to be used with programs that expect "-" as an option flag. This practice is wrong, and should not be used in any current development. It is provided for backward compatibility only. Care should be taken not to use ‘-’ as the first character in optstring to avoid a semantic conflict with GNU getopt, which assigns different meaning to an optstring that begins with a ‘-.’ By default, a single dash causes getopt to return -1. |
|
1844 |
|
1845 It is also possible to handle digits as option letters. This allows getopt to be used with programs that expect a number ("-3") as an option. This practice is wrong, and should not be used in any current development. It is provided for backward compatibility only. The following code fragment works in most cases. |
|
1846 |
|
1847 @code |
|
1848 int ch; |
|
1849 long length; |
|
1850 char *p, *ep; |
|
1851 while ((ch = getopt(argc, argv, "0123456789")) != -1) |
|
1852 switch (ch) { |
|
1853 case ’0’: case ’1’: case ’2’: case ’3’: case ’4’: |
|
1854 case ’5’: case ’6’: case ’7’: case ’8’: case ’9’: |
|
1855 p = argv[optind - 1]; |
|
1856 if (p[0] == ’-’ Am]Am] p[1] == ch Am]Am] !p[2]) { |
|
1857 length = ch - ’0’; |
|
1858 ep = ""; |
|
1859 } else if (argv[optind] Am]Am] argv[optind][1] == ch) { |
|
1860 length = strtol((p = argv[optind] + 1), |
|
1861 Am]ep, 10); |
|
1862 optind++; |
|
1863 optreset = 1; |
|
1864 } else |
|
1865 usage(); |
|
1866 if (*ep != ’\0’) |
|
1867 errx(EX_USAGE, "illegal number -- %s", p); |
|
1868 break; |
|
1869 } |
|
1870 @endcode |
|
1871 |
|
1872 |
|
1873 |
|
1874 @publishedAll |
|
1875 @externallyDefinedApi |
|
1876 */ |
|
1877 |
|
1878 /** @fn fsync(int fd) |
|
1879 @param fd |
|
1880 @return Upon successful completion, fsync() returns 0. Otherwise, it returns -1 and sets |
|
1881 errno to indicate the error. If the fsync() function fails, outstanding I/O operations |
|
1882 are not guaranteed to have been completed. |
|
1883 |
|
1884 The fsync system call |
|
1885 causes all modified data and attributes of fd to be moved to a permanent storage device. |
|
1886 This normally results in all in-core modified copies |
|
1887 of buffers for the associated file to be written to a disk. |
|
1888 |
|
1889 The fsync system call should be used by programs that require a file to |
|
1890 be in a known state, for example, when building a simple transaction facility. |
|
1891 |
|
1892 Examples: |
|
1893 @code |
|
1894 /* |
|
1895 * Detailed description : Simple usage of fsync system call. |
|
1896 * Preconditions : Example.txt if present should not a ready-only file |
|
1897 */ |
|
1898 #include <unistd.h> |
|
1899 #include <fcntl.h> |
|
1900 int main() |
|
1901 { |
|
1902 int fd = 0; |
|
1903 fd = open("Example.txt" , O_CREAT | O_RDWR , 0666); |
|
1904 if(fd < 0 ) |
|
1905 { |
|
1906 printf("Failed to open file Example.txt"); |
|
1907 return -1; |
|
1908 } |
|
1909 if(fsync(fd) < 0 ) |
|
1910 { |
|
1911 printf("fsync system call failed"); |
|
1912 return -1; |
|
1913 } |
|
1914 close(fd); |
|
1915 printf("fsync system call succeeded"); |
|
1916 return 0; |
|
1917 } |
|
1918 |
|
1919 @endcode |
|
1920 Output |
|
1921 @code |
|
1922 fsync system call succeeded |
|
1923 |
|
1924 @endcode |
|
1925 @see fsync() |
|
1926 @see sync() |
|
1927 |
|
1928 |
|
1929 |
|
1930 |
|
1931 @publishedAll |
|
1932 @externallyDefinedApi |
|
1933 */ |
|
1934 |
|
1935 /** @fn fdatasync(int filedesc) |
|
1936 @param filedesc |
|
1937 @return If successful the function returns 0, otherwise it returns (-1) and sets errno |
|
1938 to indicate the error. |
|
1939 |
|
1940 The fdatasync system call |
|
1941 causes all modified data and attributes of fd to be moved to a permanent storage device. |
|
1942 This normally results in all in-core modified copies |
|
1943 of buffers for the associated file to be written to a disk. |
|
1944 The fdatasync() function forces all the queued I/O operations associated that |
|
1945 file, as indicated by the file descriptor fd, to the synchronized I/O completion |
|
1946 state. |
|
1947 |
|
1948 The functionality shall be equivalent to fsync() with the symbol _POSIX_SYNCHRONIZED_IO |
|
1949 defined. This has an exception that all I/O operations shall be completed before |
|
1950 the call. |
|
1951 |
|
1952 |
|
1953 |
|
1954 The fdatasync should be used by programs that require a file to be in |
|
1955 a known state, for example when building a simple transaction facility. |
|
1956 |
|
1957 |
|
1958 |
|
1959 Examples: |
|
1960 @code |
|
1961 #include<unistd.h> |
|
1962 #include<stdio.h> |
|
1963 #define KMAXCHARS 100 |
|
1964 int test_fdatasync() |
|
1965 { |
|
1966 char* array = "abcdefghijklmnopqrstuvwxyz"; |
|
1967 struct stat buf; |
|
1968 if((fd = open(file , O_CREAT | O_RDWR , 0666)) < 0) |
|
1969 { |
|
1970 printf("Failed to create file"); |
|
1971 } |
|
1972 size_t size = write(fd,array, KMAXCHARS); |
|
1973 if(fdatasync(fd) < 0) |
|
1974 { |
|
1975 printf("Fdatasync failed"); |
|
1976 int retrn = remove(file); |
|
1977 return -1; |
|
1978 } |
|
1979 int retVal2 = fstat( fp, &buf; ); |
|
1980 if(!retVal2) |
|
1981 { |
|
1982 size_t bufsize = buf.st_size; |
|
1983 if (bufsize == size) |
|
1984 { |
|
1985 printf("file size = %d", size); |
|
1986 printf("Fdatasync passed"); |
|
1987 int retrn = remove(file); |
|
1988 return 0; |
|
1989 } |
|
1990 } |
|
1991 } |
|
1992 |
|
1993 @endcode |
|
1994 Output |
|
1995 @code |
|
1996 file size = 50 |
|
1997 Fdatasync passed |
|
1998 |
|
1999 @endcode |
|
2000 @see sync() |
|
2001 @see fsync() |
|
2002 |
|
2003 |
|
2004 |
|
2005 |
|
2006 @publishedAll |
|
2007 @externallyDefinedApi |
|
2008 */ |
|
2009 |
|
2010 /** @fn ftruncate(int filedesc, off_t length) |
|
2011 @param filedesc |
|
2012 @param length |
|
2013 |
|
2014 Refer to truncate() for documentation |
|
2015 |
|
2016 @see open() |
|
2017 @publishedAll |
|
2018 @externallyDefinedApi |
|
2019 */ |
|
2020 |
|
2021 /** @fn ftruncate64(int filedesc, off64_t length) |
|
2022 @param filedesc |
|
2023 @param length |
|
2024 |
|
2025 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
2026 |
|
2027 @see ftruncate() |
|
2028 |
|
2029 @publishedAll |
|
2030 @externallyDefinedApi |
|
2031 */ |
|
2032 |
|
2033 /** @fn readlink(const char *path, char *buf, int bufsize) |
|
2034 @param path |
|
2035 @param buf |
|
2036 @param bufsize |
|
2037 @return The call returns the count of characters placed in the buffer |
|
2038 if it succeeds, or a -1 if an error occurs, placing the error |
|
2039 code in the global variable errno. |
|
2040 |
|
2041 The readlink system call |
|
2042 places the contents of the symbolic link path in the buffer buf, which has size bufsize. The readlink system call does not append a NULL character to buf. |
|
2043 |
|
2044 Examples: |
|
2045 @code |
|
2046 /* |
|
2047 * Detailed description: Example to read a link file |
|
2048 * Precondition: "Parent.txt" should exist in c: drive with some contents |
|
2049 * of length atleast 25 characters. And a link file by name |
|
2050 * "C:\Link" pointing to parent file should exist. |
|
2051 * |
|
2052 */ |
|
2053 #include <unistd.h> |
|
2054 #include <stdio.h> |
|
2055 int main(void) |
|
2056 { |
|
2057 char rdbuff[25]; |
|
2058 int retval; |
|
2059 if((retval = (readlink("C:\Link", rdbuff, (sizeof(char)*25)))) < 0) |
|
2060 { |
|
2061 printf("Read through link file failed"); |
|
2062 perror(" "); |
|
2063 return -1; |
|
2064 } |
|
2065 printf("Read through link file succeeded"); |
|
2066 } |
|
2067 |
|
2068 @endcode |
|
2069 Output |
|
2070 @code |
|
2071 Read through link file succeeded. |
|
2072 |
|
2073 @endcode |
|
2074 |
|
2075 Limitations: |
|
2076 |
|
2077 The path parameter of the readlink() function should not exceed 256 characters in length. |
|
2078 |
|
2079 @see lstat() |
|
2080 @see stat() |
|
2081 @see symlink() |
|
2082 @see symlink() |
|
2083 |
|
2084 |
|
2085 |
|
2086 @capability Deferred @ref RFs::Entry(const TDesC16&, TEntry&) |
|
2087 |
|
2088 @publishedAll |
|
2089 @externallyDefinedApi |
|
2090 */ |
|
2091 |
|
2092 /** @fn gethostname(char *name, size_t size) |
|
2093 @param name |
|
2094 @param size |
|
2095 @return On successful completion, 0 is returned. Otherwise, -1 is returned |
|
2096 |
|
2097 The gethostname() function returns the standard host name for the current machine. The size argument specifies the size of the array pointed to by the name argument. The returned name is null-terminated, except that if size is an insufficient length to hold the host name, then the returned name is truncated and it is unspecified whether the returned name is null-terminated. |
|
2098 Host names are limited to 255 bytes |
|
2099 |
|
2100 @see uname() |
|
2101 |
|
2102 @publishedAll |
|
2103 @externallyDefinedApi |
|
2104 */ |
|
2105 |
|
2106 /** @fn setegid(gid_t gid) |
|
2107 @param gid |
|
2108 |
|
2109 Refer to setuid() for the documentation |
|
2110 |
|
2111 |
|
2112 |
|
2113 |
|
2114 @publishedAll |
|
2115 @externallyDefinedApi |
|
2116 */ |
|
2117 |
|
2118 /** @fn seteuid(uid_t uid) |
|
2119 @param uid |
|
2120 |
|
2121 Refer to setuid() for the documentation |
|
2122 |
|
2123 |
|
2124 |
|
2125 |
|
2126 @publishedAll |
|
2127 @externallyDefinedApi |
|
2128 */ |
|
2129 |
|
2130 /** @fn symlink(const char *oldpath, const char *newpath) |
|
2131 @param oldpath |
|
2132 @param newpath |
|
2133 @return Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno set to indicate the error. |
|
2134 |
|
2135 |
|
2136 |
|
2137 A symbolic link newpath is created to oldpath (newpath is the name of the file created, oldpath is the string used in creating the symbolic link). Either name |
|
2138 may be an arbitrary path name. |
|
2139 |
|
2140 The creation time stamp is not supported, only access and modification time |
|
2141 stamps. Creating a link in a directory will not alter the time stamps of the |
|
2142 directory itself. |
|
2143 |
|
2144 |
|
2145 |
|
2146 Examples: |
|
2147 @code |
|
2148 /* |
|
2149 * Detailed description : Example to create symlink to a file. |
|
2150 * Precondition : "Parent.txt" should exist in c: drive. |
|
2151 * Remarks : Symlink behaviour is exactly similar to link api. |
|
2152 */ |
|
2153 #include <unistd.h> |
|
2154 #include <stdio.h> |
|
2155 int main(void) |
|
2156 { |
|
2157 if(symlink("C:\Parent.txt","C:\Link") < 0) |
|
2158 { |
|
2159 printf("simulated link creation to parent file failed"); |
|
2160 return -1 ; |
|
2161 } |
|
2162 printf("simulated link to parent file created"); |
|
2163 return 0 ; |
|
2164 } |
|
2165 |
|
2166 @endcode |
|
2167 Output |
|
2168 @code |
|
2169 simulated link to parent file created. |
|
2170 |
|
2171 @endcode |
|
2172 |
|
2173 Limitations: |
|
2174 |
|
2175 - The oldpath and newpath parameters of the symlink() function should not exceed 256 characters in length. |
|
2176 - P.I.P.S. does not support links across file systems. |
|
2177 - P.I.P.S. does not support symlink on directories or existing link files. |
|
2178 - P.I.P.S. only simulates link files and does not distinguish between hard and symbolic links so link() and symlink() on P.I.P.S. are identical. |
|
2179 - KErrNotReady of Symbian error code is mapped to ENOENT, which typically means drive |
|
2180 not found or filesystem not mounted on the drive. |
|
2181 |
|
2182 @see link() |
|
2183 @see lstat() |
|
2184 @see readlink() |
|
2185 @see unlink() |
|
2186 @see symlink() |
|
2187 |
|
2188 |
|
2189 |
|
2190 @capability Deferred @ref RFs::Delete(const TDesC16&) |
|
2191 |
|
2192 @publishedAll |
|
2193 @externallyDefinedApi |
|
2194 */ |
|
2195 |
|
2196 /** @fn fchdir(int filedesc) |
|
2197 @param filedesc |
|
2198 |
|
2199 Refer to chdir() for the documentation |
|
2200 |
|
2201 |
|
2202 |
|
2203 @capability Deferred @ref RFs::SetSessionPath(const TDesC16&) |
|
2204 |
|
2205 @publishedAll |
|
2206 @externallyDefinedApi |
|
2207 */ |
|
2208 |
|
2209 /** @fn getpgid(pid_t pid) |
|
2210 @param pid |
|
2211 |
|
2212 Refer to getpgrp() for the documentation |
|
2213 |
|
2214 |
|
2215 |
|
2216 |
|
2217 @publishedAll |
|
2218 @externallyDefinedApi |
|
2219 */ |
|
2220 |
|
2221 /** @fn lchown(const char *path, uid_t owner, gid_t group) |
|
2222 @param path |
|
2223 @param owner |
|
2224 @param group |
|
2225 |
|
2226 Refer to chown() for the documentation |
|
2227 |
|
2228 |
|
2229 |
|
2230 |
|
2231 @publishedAll |
|
2232 @externallyDefinedApi |
|
2233 */ |
|
2234 |
|
2235 /** @fn nice(int incr) |
|
2236 @param incr |
|
2237 |
|
2238 |
|
2239 The nice function obtains the scheduling priority of the process from |
|
2240 the system and sets it to the priority value specified in incr. The priority is a value in the range -20 to 20. The default priority |
|
2241 is 0. Lower priorities cause more favorable scheduling. |
|
2242 |
|
2243 |
|
2244 |
|
2245 Examples: |
|
2246 @code |
|
2247 #include<unistd.h> |
|
2248 #include<stdio.h> |
|
2249 int test_nice() |
|
2250 { |
|
2251 int retVal; |
|
2252 errno = 0; |
|
2253 int i = -10; |
|
2254 int ret_get1 = getpriority(PRIO_PROCESS,0); |
|
2255 retVal = nice(i); |
|
2256 int ret_get2 = getpriority(PRIO_PROCESS,0); |
|
2257 if((retVal == -1)&&(errno)) |
|
2258 { |
|
2259 printf("failed"); |
|
2260 return -1; |
|
2261 } |
|
2262 else |
|
2263 { |
|
2264 if(!(i - (ret_get2 - retget1))) |
|
2265 printf("Nice value: %d", i) |
|
2266 printf("nice passed"); |
|
2267 } |
|
2268 return 0; |
|
2269 } |
|
2270 |
|
2271 @endcode |
|
2272 Output |
|
2273 @code |
|
2274 Nice value: -10 |
|
2275 nice passed |
|
2276 |
|
2277 @endcode |
|
2278 @see getpriority() |
|
2279 |
|
2280 |
|
2281 |
|
2282 |
|
2283 @publishedAll |
|
2284 @externallyDefinedApi |
|
2285 */ |
|
2286 |
|
2287 /** @fn setpgrp(pid_t _pid, pid_t _pgrp) |
|
2288 @param _pid |
|
2289 @param _pgrp |
|
2290 |
|
2291 Refer to setpgid() for the documentation |
|
2292 |
|
2293 |
|
2294 |
|
2295 |
|
2296 @publishedAll |
|
2297 @externallyDefinedApi |
|
2298 */ |
|
2299 |
|
2300 /** @fn setregid(gid_t rgid, gid_t egid) |
|
2301 @param rgid |
|
2302 @param egid |
|
2303 @return These functions always return 0. |
|
2304 |
|
2305 These functions are build supported but not available functionally. Symbian |
|
2306 OS does not support multiple users and groups. |
|
2307 |
|
2308 |
|
2309 |
|
2310 |
|
2311 |
|
2312 @publishedAll |
|
2313 @externallyDefinedApi |
|
2314 */ |
|
2315 |
|
2316 /** @fn setreuid(uid_t ruid, uid_t euid) |
|
2317 @param ruid |
|
2318 @param euid |
|
2319 @return These functions always return 0. |
|
2320 |
|
2321 These functions are build supported but not available functionally. Symbian |
|
2322 OS does not support multiple users and groups. |
|
2323 |
|
2324 |
|
2325 |
|
2326 |
|
2327 |
|
2328 @publishedAll |
|
2329 @externallyDefinedApi |
|
2330 */ |
|
2331 |
|
2332 /** @fn swab(const void *from, void *to, ssize_t len) |
|
2333 @param from |
|
2334 @param to |
|
2335 @param len |
|
2336 |
|
2337 The function swab copies len bytes from the location referenced by from to the location referenced by to, swapping adjacent bytes. |
|
2338 |
|
2339 The argument len must be an even number. |
|
2340 |
|
2341 Examples |
|
2342 @code |
|
2343 #include <string.h> |
|
2344 #include <stdio.h> |
|
2345 int main() |
|
2346 { |
|
2347 int i=0x00003366,j=0x0; |
|
2348 swab((void *)&i,(void *)&j,2); |
|
2349 if(j==0x6633) |
|
2350 printf("Ouput val = %#x\n",j); |
|
2351 return 0; |
|
2352 } |
|
2353 @endcode |
|
2354 |
|
2355 output |
|
2356 @code |
|
2357 Ouput val = 0x6633 |
|
2358 @endcode |
|
2359 @see bzero() |
|
2360 @see memset() |
|
2361 |
|
2362 |
|
2363 |
|
2364 @publishedAll |
|
2365 @externallyDefinedApi |
|
2366 */ |
|
2367 |
|
2368 /** @fn usleep(useconds_t microseconds) |
|
2369 @param microseconds |
|
2370 @return The usleep function returns the value 0 if successful; otherwise the value -1 is |
|
2371 returned and the global variable errno is set to indicate the error. |
|
2372 |
|
2373 The usleep function suspends execution of the calling process until either microseconds microseconds have elapsed or a signal is delivered to the process and its |
|
2374 action is to invoke a signal-catching function or to terminate the |
|
2375 process. |
|
2376 System activity may lengthen the sleep by an indeterminate amount. |
|
2377 |
|
2378 This function is implemented using nanosleep by pausing for microseconds microseconds or until a signal occurs. |
|
2379 Consequently, in this implementation, |
|
2380 sleeping has no effect on the state of process timers, |
|
2381 and there is no special handling for SIGALRM. |
|
2382 |
|
2383 Limitations: |
|
2384 |
|
2385 The signal related functionaities aren’t applicable to the symbian implementation as there is no support for signals from symbian. |
|
2386 |
|
2387 Examples: |
|
2388 @code |
|
2389 #include<unistd.h> |
|
2390 #include<stdio.h> |
|
2391 |
|
2392 int main() |
|
2393 { |
|
2394 unsigned long t = 2; |
|
2395 int i; |
|
2396 |
|
2397 i = usleep(t); |
|
2398 printf("Expected: 0 usleep returned: %d", i); |
|
2399 |
|
2400 return 0; |
|
2401 } |
|
2402 |
|
2403 @endcode |
|
2404 Output |
|
2405 @code |
|
2406 Expected: 0 usleep returned: 0 |
|
2407 |
|
2408 @endcode |
|
2409 @see nanosleep() |
|
2410 @see sleep() |
|
2411 |
|
2412 |
|
2413 |
|
2414 |
|
2415 @publishedAll |
|
2416 @externallyDefinedApi |
|
2417 */ |
|
2418 |
|
2419 /** @fn truncate(const char *file, off_t length) |
|
2420 @param file |
|
2421 @param length |
|
2422 @return Upon successful completion, both truncate() and ftruncate() shall return 0; otherwise, -1 shall be returned and errno set to indicate the error. |
|
2423 |
|
2424 |
|
2425 The truncate system call causes the file named by file or referenced by filedesc to be truncated to length bytes in size. If the file was larger than this size, the extra data is lost. If the file was smaller than this size, it will be extended as if by writing bytes with the value zero. With ftruncate, the file must be open for writing. |
|
2426 |
|
2427 Examples: |
|
2428 @code |
|
2429 //example for truncate |
|
2430 #include<unistd.h> |
|
2431 #include<stdio.h> |
|
2432 #include <sys/stat.h> |
|
2433 int test_truncate() |
|
2434 { |
|
2435 int retVal, retVal2, retSize, retSize2; |
|
2436 struct stat buf; |
|
2437 ssize_t size; |
|
2438 char *buffer = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"; |
|
2439 int fp = open("c:\test.txt", O_RDWR|O_CREAT); |
|
2440 size = write(fp,buffer,50); |
|
2441 close(fp); |
|
2442 retVal2 = stat("c:\test.txt", &buf ); |
|
2443 if ( !retVal2 ) |
|
2444 { |
|
2445 retSize = buf.st_size; |
|
2446 printf("Size before: %d", retSize); |
|
2447 retVal = truncate("c:\test.txt", retSize/2 ); |
|
2448 } |
|
2449 else |
|
2450 { |
|
2451 printf("Failed"); |
|
2452 } |
|
2453 retVal2 = stat( "c:\test.txt", &buf ); |
|
2454 if ( !retVal2 ) |
|
2455 { |
|
2456 retSize2 = buf.st_size; |
|
2457 if( retSize2 == (retSize/2 ) ) |
|
2458 { |
|
2459 printf("\nSize after: %d\n", retSize2); |
|
2460 printf("Truncate passed"); |
|
2461 return 0; |
|
2462 } |
|
2463 else |
|
2464 { |
|
2465 printf("Failed"); |
|
2466 return -1; |
|
2467 } |
|
2468 } |
|
2469 else |
|
2470 { |
|
2471 printf("Failed"); |
|
2472 return -1; |
|
2473 } |
|
2474 } |
|
2475 @endcode |
|
2476 Output |
|
2477 @code |
|
2478 Size before: 50 |
|
2479 Size after: 25 |
|
2480 Ttruncate Passed |
|
2481 @endcode |
|
2482 |
|
2483 Errors: |
|
2484 |
|
2485 The truncate and ftruncate succeed unless: |
|
2486 [EBADF] The filedesc argument is not a valid descriptor for a regular file. |
|
2487 [EINVAL] The filedesc argument references to an object other than a file. |
|
2488 [EINVAL] The filedesc descriptor is not open for writing. |
|
2489 |
|
2490 |
|
2491 Bugs: |
|
2492 |
|
2493 These calls should be generalized to allow ranges of bytes in a file to be discarded. |
|
2494 Use of truncate to extend a file is not portable. |
|
2495 @see open() |
|
2496 |
|
2497 |
|
2498 |
|
2499 @publishedAll |
|
2500 @externallyDefinedApi |
|
2501 */ |
|
2502 |
|
2503 /** @fn truncate64(const char *file, off64_t length) |
|
2504 @param file |
|
2505 @param length |
|
2506 @return Upon successful completion, both truncate64() and ftruncate64() shall return 0; otherwise, -1 shall be returned and errno set to indicate the error. |
|
2507 |
|
2508 For full documentation see: http://www.unix.org/version2/whatsnew/lfs20mar.html#3.0 |
|
2509 |
|
2510 @see truncate() |
|
2511 |
|
2512 @publishedAll |
|
2513 @externallyDefinedApi |
|
2514 */ |
|
2515 |
|
2516 /** @fn brk(const void*) |
|
2517 |
|
2518 @return Function always returns 0. |
|
2519 |
|
2520 The brk function is used to change the amount of memory allocated in a |
|
2521 process's data segment.It does this by moving the location of the "break". |
|
2522 This functionality is not supported by the Symbian OS platform and hence |
|
2523 is only build supported. |
|
2524 |
|
2525 |
|
2526 |
|
2527 @see mmap() |
|
2528 @see free() |
|
2529 @see malloc() |
|
2530 |
|
2531 |
|
2532 |
|
2533 |
|
2534 @publishedAll |
|
2535 @externallyDefinedApi |
|
2536 */ |
|
2537 |
|
2538 /** @fn getdtablesize(void) |
|
2539 @return |
|
2540 |
|
2541 Each process has a fixed size descriptor table, |
|
2542 which is guaranteed to have at least 20 slots. |
|
2543 The entries in |
|
2544 the descriptor table are numbered with small integers starting at 0. |
|
2545 The getdtablesize system call returns the size of this table. |
|
2546 |
|
2547 Examples: |
|
2548 @code |
|
2549 #include <stdio.h> |
|
2550 int main() |
|
2551 { |
|
2552 printf("maximum number of files that can be opened by a process is %d",getdtablesize()); |
|
2553 } |
|
2554 |
|
2555 @endcode |
|
2556 Output |
|
2557 @code |
|
2558 maximum number of files that can be opened by a process is 1024 |
|
2559 |
|
2560 @endcode |
|
2561 @see close() |
|
2562 @see dup() |
|
2563 @see open() |
|
2564 |
|
2565 |
|
2566 |
|
2567 |
|
2568 @publishedAll |
|
2569 @externallyDefinedApi |
|
2570 */ |
|
2571 |
|
2572 /** @fn getpagesize(void) |
|
2573 The getpagesize function |
|
2574 returns the number of bytes in a page. |
|
2575 Page granularity is the granularity of many of the memory |
|
2576 management calls. |
|
2577 |
|
2578 The page size is a system |
|
2579 page size and may not be the same as the underlying |
|
2580 hardware page size. |
|
2581 |
|
2582 Examples: |
|
2583 @code |
|
2584 #include<unistd.h> |
|
2585 #include<stdio.h> |
|
2586 int test_getpagesize() |
|
2587 { |
|
2588 int retVal = 0; |
|
2589 retVal = getpagesize(); |
|
2590 if( retVal >= 0) |
|
2591 { |
|
2592 printf("getpagesize passed"); |
|
2593 printf(" |
|
2594 retVal = %d " retVal); |
|
2595 return retVal; |
|
2596 } |
|
2597 else |
|
2598 { |
|
2599 printf("Failed"); |
|
2600 return -1; |
|
2601 } |
|
2602 } |
|
2603 |
|
2604 @endcode |
|
2605 Output |
|
2606 @code |
|
2607 getpagesize passed |
|
2608 retVal = 4096 |
|
2609 |
|
2610 @endcode |
|
2611 @see sbrk() |
|
2612 |
|
2613 |
|
2614 |
|
2615 |
|
2616 @publishedAll |
|
2617 @externallyDefinedApi |
|
2618 */ |
|
2619 |
|
2620 /** @fn initgroups(const char *, gid_t) |
|
2621 |
|
2622 @return These functions always return 0. |
|
2623 |
|
2624 |
|
2625 |
|
2626 The getgroups function is build supported but not available functionally. |
|
2627 Symbian OS does not support multiple users and groups. |
|
2628 |
|
2629 |
|
2630 |
|
2631 |
|
2632 |
|
2633 |
|
2634 |
|
2635 @publishedAll |
|
2636 @externallyDefinedApi |
|
2637 */ |
|
2638 |
|
2639 /** @fn issetugid(void) |
|
2640 @return The issetugid() function returns 1 if the process was made setuid or setgid as the result of the last or a previous call to execve(). Otherwise it returns 0 |
|
2641 |
|
2642 The issetugid() function enables library functions (in lib-termlib, libc, or other libraries) to guarantee safe behavior when used in setuid or setgid programs. Some library functions might be passed insufficient informationand not know whether the current program was started setuidor setgid because a higher level calling code might have made changes to the uid, euid, gid, or egid. These low-levellibrary functions are therefore unable to determine if theyare being run with elevated or normal privileges. |
|
2643 |
|
2644 Errors: |
|
2645 |
|
2646 The issetugid() function is always successful. No return value is reserved to indicate an error. |
|
2647 g |
|
2648 @publishedAll |
|
2649 @externallyDefinedApi |
|
2650 */ |
|
2651 |
|
2652 /** @fn mkstemp(char *template) |
|
2653 @param template |
|
2654 @return The mkstemp function returns -1 if no suitable file could be created and an error code is placed in the global variable. errno. |
|
2655 |
|
2656 The mkstemp function takes the given file name template and overwrites a portion of it to create a file with that name and returns a file descriptor opened for reading and writing. This file name is guaranteed not to exist at the time of function invocation and is suitable for use by the application. The template may be any file name with some number of ‘X s’ appended to it, for example /tmp/temp.XXXXXX. The trailing ‘X s’ are replaced with a unique alphanumeric combination. The number of unique file names mkstemp can return depends on the number of ‘X s’ provided; six ‘X s’ will result in mkstemp selecting one of 56800235584 (62 ** 6) possible temporary file names. |
|
2657 |
|
2658 Errors: |
|
2659 |
|
2660 The mkstemp function may set errno to one of the following values: |
|
2661 [ENOTDIR] The pathname portion of the template is not an existing directory. |
|
2662 The mkstemp function may also set errno to any value specified by the stat function. |
|
2663 The mkstemp function may also set errno to any value specified by the open function. |
|
2664 |
|
2665 Examples: |
|
2666 @code |
|
2667 #include <stdlib.h> |
|
2668 #include <stdio.h> //printf, SEEK_SET |
|
2669 #include <unistd.h> |
|
2670 |
|
2671 int main( void ) |
|
2672 { |
|
2673 char arr[] = "c:\\someXXXXXXXX"; |
|
2674 char buf[10]; |
|
2675 |
|
2676 //create a temporary file using mkstemp() |
|
2677 int fd = mkstemp(arr); |
|
2678 |
|
2679 if(fd != -1) |
|
2680 { |
|
2681 //write to the file |
|
2682 write(fd, "hello", 5); |
|
2683 //seek to the beginning of the file |
|
2684 lseek(fd, 0, SEEK_SET); //beg of the file |
|
2685 //read from the file |
|
2686 read(fd, buf, 5); |
|
2687 buf[5] = '\0'; |
|
2688 //close the file |
|
2689 close(fd); |
|
2690 } |
|
2691 |
|
2692 printf("buf read: %s", buf); |
|
2693 return 0; |
|
2694 } |
|
2695 @endcode |
|
2696 |
|
2697 Output |
|
2698 @code |
|
2699 buf read: hello |
|
2700 @endcode |
|
2701 |
|
2702 Limitations: |
|
2703 |
|
2704 The template parameter of the mkstemp() function should not exceed 256 characters in length. |
|
2705 |
|
2706 @publishedAll |
|
2707 @externallyDefinedApi |
|
2708 */ |
|
2709 |
|
2710 /** @fn mkstemp64(char *template) |
|
2711 @param template |
|
2712 @return The mkstemp64 function |
|
2713 returns -1 if no suitable file could be created |
|
2714 and an error code is placed in the global variable. errno. |
|
2715 |
|
2716 The mkstemp64() function generates a unique temporary file name from template. The last six characters of template must be XXXXXX and these are replaced with a string that makes the filename unique. |
|
2717 |
|
2718 The mkstemp64() function is a 64-bit version of mkstemp. |
|
2719 |
|
2720 @see mkstemp() |
|
2721 |
|
2722 @publishedAll |
|
2723 @externallyDefinedApi |
|
2724 */ |
|
2725 |
|
2726 /** @fn select(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *tvptr) |
|
2727 @param maxfd |
|
2728 @param readfds |
|
2729 @param writefds |
|
2730 @param exceptfds |
|
2731 @param tvptr |
|
2732 @return The select system call |
|
2733 returns the number of ready descriptors that are contained in |
|
2734 the descriptor sets, |
|
2735 or -1 if an error occurred. |
|
2736 If the time limit expires, select returns 0. |
|
2737 If select returns with an error, |
|
2738 the descriptor sets will be unmodified. |
|
2739 |
|
2740 The select system call |
|
2741 examines the I/O descriptor sets whose addresses are passed in readfds, writefds, and exceptfds to see if some of their descriptors |
|
2742 are ready for reading, are ready for writing, or have an exceptional |
|
2743 condition pending, respectively. |
|
2744 The only exceptional condition detectable is out-of-band |
|
2745 data received on a socket. |
|
2746 The first maxfd descriptors are checked in each set; |
|
2747 i.e., the descriptors from 0 through maxfd -1 in the descriptor sets are examined. |
|
2748 On return, select replaces the given descriptor sets |
|
2749 with subsets consisting of those descriptors that are ready |
|
2750 for the requested operation. |
|
2751 The select system call |
|
2752 returns the total number of ready descriptors in all the sets. |
|
2753 |
|
2754 The descriptor sets are stored as bit fields in arrays of integers. |
|
2755 The following macros are provided for manipulating such descriptor sets: |
|
2756 |
|
2757 @code |
|
2758 FD_ZERO (&fdset;); initializes a descriptor set fdset to the null set. |
|
2759 FD_SET (fd, &fdset;); includes a particular descriptor fd in fdset. |
|
2760 FD_CLR (fd, &fdset;); removes fd from fdset. |
|
2761 FD_ISSET (fd, &fdset;); is non-zero if fd is a member of fdset, zero otherwise. |
|
2762 @endcode |
|
2763 |
|
2764 The behavior of these macros is undefined if |
|
2765 a descriptor value is less than zero or greater than or equal to FD_SETSIZE, which is normally at least equal |
|
2766 to the maximum number of descriptors supported by the system. |
|
2767 |
|
2768 If tvptr is not a null pointer, it specifies the maximum interval to wait for the |
|
2769 selection to complete. |
|
2770 System activity can lengthen the interval by |
|
2771 an indeterminate amount. |
|
2772 |
|
2773 To effect a poll, the tvptr argument should not be a null pointer, |
|
2774 but it should point to a zero-valued timeval structure. |
|
2775 |
|
2776 Any of readfds, writefds, and exceptfds may be given as null pointers if no descriptors are of interest. |
|
2777 |
|
2778 Errors: |
|
2779 |
|
2780 An error return from select indicates: |
|
2781 [EBADF] One of the descriptor sets specified an invalid descriptor. |
|
2782 [EFAULT] One of the arguments readfds, writefds, exceptfds, or tvptr points to an invalid address. |
|
2783 [EINVAL] The specified time limit is invalid. One of its components is negative or too large. |
|
2784 [EINVAL] The maxfd argument was invalid. |
|
2785 |
|
2786 Limitations: |
|
2787 |
|
2788 select is not interrupted by signals, as signals are not supported by |
|
2789 Symbian OS. If tvptr is set to null, select does not block forever, but waits for a maximum of 10 seconds |
|
2790 and returns. select cannot be called a second time on the same socket descriptor |
|
2791 before the first select operation on the same socket descriptor completes. (i.e) Only |
|
2792 one select operation can be outstanding on a Socket. This is because of |
|
2793 the limitation of the underlying Ioctl operation. Only one Ioctl operation may be outstanding for each socket. |
|
2794 Examples: |
|
2795 @code |
|
2796 #include <sys/select.h> |
|
2797 #include <unistd.h> |
|
2798 /* |
|
2799 * A simple example of testing a single FD for readability |
|
2800 * This example returns 1 when the fd is ready for reading. |
|
2801 */ |
|
2802 #include <sys/select.h> |
|
2803 #include <unistd.h> |
|
2804 /* |
|
2805 * A simple example of testing a single FD for readability |
|
2806 * This example returns 1 when the fd is ready for reading. |
|
2807 */ |
|
2808 int isready(int fd) |
|
2809 { |
|
2810 int rc; |
|
2811 fd_set fds; |
|
2812 struct timeval tv; |
|
2813 |
|
2814 /* |
|
2815 * FD_ZERO() clears out the fd_set called fds, so that |
|
2816 * it doesn’t contain any file descriptors. |
|
2817 */ |
|
2818 FD_ZERO(&fds); |
|
2819 /* |
|
2820 * FD_SET() adds the file descriptor "fd" to the fd_set, |
|
2821 * so that select() will return if fd is readable |
|
2822 */ |
|
2823 FD_SET(fd,&fds); |
|
2824 tv.tv_sec = tv.tv_usec = 0; |
|
2825 /* |
|
2826 * The first argument to select is the highest file |
|
2827 * descriptor value plus 1. |
|
2828 */ |
|
2829 |
|
2830 /* The second argument to select() is the address of |
|
2831 * the fd_set that contains fd’s we’re waiting |
|
2832 * to be readable. |
|
2833 */ |
|
2834 |
|
2835 /* The third parameter is an fd_set that you want to |
|
2836 * know if you can write on -- this example doesn’t |
|
2837 * use it, so it passes 0, or NULL. |
|
2838 */ |
|
2839 /* The fourth parameter is sockets you’re waiting for |
|
2840 * out-of-band data for. |
|
2841 */ |
|
2842 |
|
2843 /* The last parameter to select() is a time-out of how |
|
2844 * long select() should block. |
|
2845 */ |
|
2846 rc = select(fd+1, &fds, NULL, NULL, &tv); |
|
2847 /* select() returns the number of fd’s that are ready |
|
2848 * Once select() returns, the original fd_set has been |
|
2849 * modified so it now reflects the state of why select() |
|
2850 * woke up. i.e. If file descriptor 4 was originally in |
|
2851 * the fd_set, and then it became readable, the fd_set |
|
2852 * contains file descriptor 4 in it. |
|
2853 */ |
|
2854 if (rc < 0) |
|
2855 return -1; |
|
2856 return FD_ISSET(fd,&fds) ? 1 : 0; |
|
2857 } |
|
2858 @endcode |
|
2859 @see accept() |
|
2860 @see connect() |
|
2861 @see getdtablesize() |
|
2862 @see gettimeofday() |
|
2863 @see read() |
|
2864 @see recv() |
|
2865 @see send() |
|
2866 @see write() |
|
2867 |
|
2868 |
|
2869 Notes: |
|
2870 |
|
2871 The default size of FD_SETSIZE is currently set to 1024. |
|
2872 In order to accommodate programs which might potentially |
|
2873 use a larger number of open files with select, it is possible |
|
2874 to increase this size by having the program define FD_SETSIZE before the inclusion of any header which includes |
|
2875 |
|
2876 \#include \< sys/types.h \> |
|
2877 |
|
2878 If maxfd is greater than the number of open files, select is not guaranteed to examine the unused file descriptors. For |
|
2879 historical reasons, select will always examine the first 256 descriptors. |
|
2880 |
|
2881 The select system call appeared in BSD 4.2. |
|
2882 |
|
2883 Bugs: |
|
2884 |
|
2885 <code> -susv2 </code> allows systems to modify the original tvptr in place. |
|
2886 Thus, it is unwise to assume that the tvptr value will be unmodified |
|
2887 by the select system call. |
|
2888 |
|
2889 |
|
2890 |
|
2891 |
|
2892 @publishedAll |
|
2893 @externallyDefinedApi |
|
2894 */ |
|
2895 |
|
2896 /** @fn setgroups(int, const gid_t *) |
|
2897 |
|
2898 Refer to getgrent() for the documentation |
|
2899 |
|
2900 |
|
2901 |
|
2902 |
|
2903 @publishedAll |
|
2904 @externallyDefinedApi |
|
2905 */ |
|
2906 |
|
2907 |
|
2908 /** @fn alarm(unsigned int seconds) |
|
2909 @param seconds - |
|
2910 @return - |
|
2911 |
|
2912 For full documentation see: http://www.opengroup.org/onlinepubs/009695399/functions/alarm.html |
|
2913 |
|
2914 The Symbian implementation of this API fully supports POSIX functionality. |
|
2915 |
|
2916 @publishedAll |
|
2917 @externallyDefinedApi |
|
2918 */ |
|
2919 |
|
2920 /** @def environ |
|
2921 |
|
2922 Environment variable. |
|
2923 |
|
2924 @publishedAll |
|
2925 @released |
|
2926 */ |
|
2927 |
|
2928 /** @def STDIN_FILENO |
|
2929 |
|
2930 standard input file descriptor |
|
2931 |
|
2932 @publishedAll |
|
2933 @externallyDefinedApi |
|
2934 */ |
|
2935 |
|
2936 /** @def STDOUT_FILENO |
|
2937 |
|
2938 standard output file descriptor |
|
2939 |
|
2940 @publishedAll |
|
2941 @externallyDefinedApi |
|
2942 */ |
|
2943 |
|
2944 /** @def STDERR_FILENO |
|
2945 |
|
2946 standard error file descriptor |
|
2947 |
|
2948 @publishedAll |
|
2949 @externallyDefinedApi |
|
2950 */ |
|
2951 |
|
2952 /** @def F_ULOCK |
|
2953 |
|
2954 unlock locked section |
|
2955 |
|
2956 @publishedAll |
|
2957 @externallyDefinedApi |
|
2958 */ |
|
2959 |
|
2960 /** @def F_LOCK |
|
2961 |
|
2962 lock a section for exclusive use |
|
2963 |
|
2964 @publishedAll |
|
2965 @externallyDefinedApi |
|
2966 */ |
|
2967 |
|
2968 /** @def F_TLOCK |
|
2969 |
|
2970 test and lock a section for exclusive use |
|
2971 |
|
2972 @publishedAll |
|
2973 @externallyDefinedApi |
|
2974 */ |
|
2975 |
|
2976 /** @def F_TEST |
|
2977 |
|
2978 test a section for locks by other procs |
|
2979 |
|
2980 @publishedAll |
|
2981 @externallyDefinedApi |
|
2982 */ |
|
2983 |
|
2984 /** @def _SC_ARG_MAX |
|
2985 |
|
2986 POSIX-style system configuration variable accessors (for the sysconf function). |
|
2987 |
|
2988 @publishedAll |
|
2989 @externallyDefinedApi |
|
2990 */ |
|
2991 |
|
2992 /** @def _SC_CHILD_MAX |
|
2993 |
|
2994 POSIX-style system configuration variable accessors (for the sysconf function). |
|
2995 |
|
2996 @publishedAll |
|
2997 @externallyDefinedApi |
|
2998 */ |
|
2999 |
|
3000 /** @def _SC_CLK_TCK |
|
3001 |
|
3002 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3003 |
|
3004 @publishedAll |
|
3005 @externallyDefinedApi |
|
3006 */ |
|
3007 |
|
3008 /** @def _SC_NGROUPS_MAX |
|
3009 |
|
3010 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3011 |
|
3012 @publishedAll |
|
3013 @externallyDefinedApi |
|
3014 */ |
|
3015 |
|
3016 /** @def _SC_OPEN_MAX |
|
3017 |
|
3018 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3019 |
|
3020 @publishedAll |
|
3021 @externallyDefinedApi |
|
3022 */ |
|
3023 |
|
3024 /** @def _SC_JOB_CONTROL |
|
3025 |
|
3026 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3027 |
|
3028 @publishedAll |
|
3029 @externallyDefinedApi |
|
3030 */ |
|
3031 |
|
3032 /** @def _SC_SAVED_IDS |
|
3033 |
|
3034 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3035 |
|
3036 @publishedAll |
|
3037 @externallyDefinedApi |
|
3038 */ |
|
3039 |
|
3040 /** @def _SC_VERSION |
|
3041 |
|
3042 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3043 |
|
3044 @publishedAll |
|
3045 @externallyDefinedApi |
|
3046 */ |
|
3047 |
|
3048 /** @def _SC_BC_BASE_MAX |
|
3049 |
|
3050 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3051 |
|
3052 @publishedAll |
|
3053 @externallyDefinedApi |
|
3054 */ |
|
3055 |
|
3056 /** @def _SC_BC_DIM_MAX |
|
3057 |
|
3058 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3059 |
|
3060 @publishedAll |
|
3061 @externallyDefinedApi |
|
3062 */ |
|
3063 |
|
3064 /** @def _SC_BC_SCALE_MAX |
|
3065 |
|
3066 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3067 |
|
3068 @publishedAll |
|
3069 @externallyDefinedApi |
|
3070 */ |
|
3071 |
|
3072 /** @def _SC_BC_STRING_MAX |
|
3073 |
|
3074 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3075 |
|
3076 @publishedAll |
|
3077 @externallyDefinedApi |
|
3078 */ |
|
3079 |
|
3080 /** @def _SC_COLL_WEIGHTS_MAX |
|
3081 |
|
3082 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3083 |
|
3084 @publishedAll |
|
3085 @externallyDefinedApi |
|
3086 */ |
|
3087 |
|
3088 /** @def _SC_EXPR_NEST_MAX |
|
3089 |
|
3090 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3091 |
|
3092 @publishedAll |
|
3093 @externallyDefinedApi |
|
3094 */ |
|
3095 |
|
3096 /** @def _SC_LINE_MAX |
|
3097 |
|
3098 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3099 |
|
3100 @publishedAll |
|
3101 @externallyDefinedApi |
|
3102 */ |
|
3103 |
|
3104 /** @def _SC_RE_DUP_MAX |
|
3105 |
|
3106 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3107 |
|
3108 @publishedAll |
|
3109 @externallyDefinedApi |
|
3110 */ |
|
3111 |
|
3112 /** @def _SC_2_VERSION |
|
3113 |
|
3114 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3115 |
|
3116 @publishedAll |
|
3117 @externallyDefinedApi |
|
3118 */ |
|
3119 |
|
3120 /** @def _SC_2_C_BIND |
|
3121 |
|
3122 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3123 |
|
3124 @publishedAll |
|
3125 @externallyDefinedApi |
|
3126 */ |
|
3127 |
|
3128 /** @def _SC_2_C_DEV |
|
3129 |
|
3130 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3131 |
|
3132 @publishedAll |
|
3133 @externallyDefinedApi |
|
3134 */ |
|
3135 |
|
3136 /** @def _SC_2_CHAR_TERM |
|
3137 |
|
3138 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3139 |
|
3140 @publishedAll |
|
3141 @externallyDefinedApi |
|
3142 */ |
|
3143 |
|
3144 /** @def _SC_2_FORT_DEV |
|
3145 |
|
3146 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3147 |
|
3148 @publishedAll |
|
3149 @externallyDefinedApi |
|
3150 */ |
|
3151 |
|
3152 /** @def _SC_2_FORT_RUN |
|
3153 |
|
3154 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3155 |
|
3156 @publishedAll |
|
3157 @externallyDefinedApi |
|
3158 */ |
|
3159 |
|
3160 /** @def _SC_2_LOCALEDEF |
|
3161 |
|
3162 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3163 |
|
3164 @publishedAll |
|
3165 @externallyDefinedApi |
|
3166 */ |
|
3167 |
|
3168 /** @def _SC_2_SW_DEV |
|
3169 |
|
3170 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3171 |
|
3172 @publishedAll |
|
3173 @externallyDefinedApi |
|
3174 */ |
|
3175 |
|
3176 /** @def _SC_2_UPE |
|
3177 |
|
3178 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3179 |
|
3180 @publishedAll |
|
3181 @externallyDefinedApi |
|
3182 */ |
|
3183 |
|
3184 /** @def _SC_STREAM_MAX |
|
3185 |
|
3186 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3187 |
|
3188 @publishedAll |
|
3189 @externallyDefinedApi |
|
3190 */ |
|
3191 |
|
3192 /** @def _SC_TZNAME_MAX |
|
3193 |
|
3194 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3195 |
|
3196 @publishedAll |
|
3197 @externallyDefinedApi |
|
3198 */ |
|
3199 |
|
3200 /** @def _SC_ASYNCHRONOUS_IO |
|
3201 |
|
3202 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3203 |
|
3204 @publishedAll |
|
3205 @externallyDefinedApi |
|
3206 */ |
|
3207 |
|
3208 /** @def _SC_MAPPED_FILES |
|
3209 |
|
3210 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3211 |
|
3212 @publishedAll |
|
3213 @externallyDefinedApi |
|
3214 */ |
|
3215 |
|
3216 /** @def _SC_MEMLOCK |
|
3217 |
|
3218 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3219 |
|
3220 @publishedAll |
|
3221 @externallyDefinedApi |
|
3222 */ |
|
3223 |
|
3224 /** @def _SC_MEMLOCK_RANGE |
|
3225 |
|
3226 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3227 |
|
3228 @publishedAll |
|
3229 @externallyDefinedApi |
|
3230 */ |
|
3231 |
|
3232 /** @def _SC_MEMORY_PROTECTION |
|
3233 |
|
3234 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3235 |
|
3236 @publishedAll |
|
3237 @externallyDefinedApi |
|
3238 */ |
|
3239 |
|
3240 /** @def _SC_MESSAGE_PASSING |
|
3241 |
|
3242 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3243 |
|
3244 @publishedAll |
|
3245 @externallyDefinedApi |
|
3246 */ |
|
3247 |
|
3248 /** @def _SC_PRIORITIZED_IO |
|
3249 |
|
3250 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3251 |
|
3252 @publishedAll |
|
3253 @externallyDefinedApi |
|
3254 */ |
|
3255 |
|
3256 /** @def _SC_PRIORITY_SCHEDULING |
|
3257 |
|
3258 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3259 |
|
3260 @publishedAll |
|
3261 @externallyDefinedApi |
|
3262 */ |
|
3263 |
|
3264 /** @def _SC_REALTIME_SIGNALS |
|
3265 |
|
3266 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3267 |
|
3268 @publishedAll |
|
3269 @externallyDefinedApi |
|
3270 */ |
|
3271 |
|
3272 /** @def _SC_SEMAPHORES |
|
3273 |
|
3274 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3275 |
|
3276 @publishedAll |
|
3277 @externallyDefinedApi |
|
3278 */ |
|
3279 |
|
3280 /** @def _SC_FSYNC |
|
3281 |
|
3282 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3283 |
|
3284 @publishedAll |
|
3285 @externallyDefinedApi |
|
3286 */ |
|
3287 |
|
3288 /** @def _SC_SHARED_MEMORY_OBJECTS |
|
3289 |
|
3290 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3291 |
|
3292 @publishedAll |
|
3293 @externallyDefinedApi |
|
3294 */ |
|
3295 |
|
3296 /** @def _SC_SYNCHRONIZED_IO |
|
3297 |
|
3298 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3299 |
|
3300 @publishedAll |
|
3301 @externallyDefinedApi |
|
3302 */ |
|
3303 |
|
3304 /** @def _SC_TIMERS |
|
3305 |
|
3306 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3307 |
|
3308 @publishedAll |
|
3309 @externallyDefinedApi |
|
3310 */ |
|
3311 |
|
3312 /** @def _SC_AIO_LISTIO_MAX |
|
3313 |
|
3314 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3315 |
|
3316 @publishedAll |
|
3317 @externallyDefinedApi |
|
3318 */ |
|
3319 |
|
3320 /** @def _SC_AIO_MAX |
|
3321 |
|
3322 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3323 |
|
3324 @publishedAll |
|
3325 @externallyDefinedApi |
|
3326 */ |
|
3327 |
|
3328 /** @def _SC_AIO_PRIO_DELTA_MAX |
|
3329 |
|
3330 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3331 |
|
3332 @publishedAll |
|
3333 @externallyDefinedApi |
|
3334 */ |
|
3335 |
|
3336 /** @def _SC_DELAYTIMER_MAX |
|
3337 |
|
3338 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3339 |
|
3340 @publishedAll |
|
3341 @externallyDefinedApi |
|
3342 */ |
|
3343 |
|
3344 /** @def _SC_MQ_OPEN_MAX |
|
3345 |
|
3346 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3347 |
|
3348 @publishedAll |
|
3349 @externallyDefinedApi |
|
3350 */ |
|
3351 |
|
3352 /** @def _SC_PAGESIZE |
|
3353 |
|
3354 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3355 |
|
3356 @publishedAll |
|
3357 @externallyDefinedApi |
|
3358 */ |
|
3359 |
|
3360 /** @def _SC_RTSIG_MAX |
|
3361 |
|
3362 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3363 |
|
3364 @publishedAll |
|
3365 @externallyDefinedApi |
|
3366 */ |
|
3367 |
|
3368 /** @def _SC_SEM_NSEMS_MAX |
|
3369 |
|
3370 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3371 |
|
3372 @publishedAll |
|
3373 @externallyDefinedApi |
|
3374 */ |
|
3375 |
|
3376 /** @def _SC_SEM_VALUE_MAX |
|
3377 |
|
3378 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3379 |
|
3380 @publishedAll |
|
3381 @externallyDefinedApi |
|
3382 */ |
|
3383 |
|
3384 /** @def _SC_SIGQUEUE_MAX |
|
3385 |
|
3386 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3387 |
|
3388 @publishedAll |
|
3389 @externallyDefinedApi |
|
3390 */ |
|
3391 |
|
3392 /** @def _SC_TIMER_MAX |
|
3393 |
|
3394 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3395 |
|
3396 @publishedAll |
|
3397 @externallyDefinedApi |
|
3398 */ |
|
3399 |
|
3400 /** @def _SC_2_PBS |
|
3401 |
|
3402 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3403 |
|
3404 @publishedAll |
|
3405 @externallyDefinedApi |
|
3406 */ |
|
3407 |
|
3408 /** @def _SC_2_PBS_ACCOUNTING |
|
3409 |
|
3410 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3411 |
|
3412 @publishedAll |
|
3413 @externallyDefinedApi |
|
3414 */ |
|
3415 |
|
3416 /** @def _SC_2_PBS_CHECKPOINT |
|
3417 |
|
3418 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3419 |
|
3420 @publishedAll |
|
3421 @externallyDefinedApi |
|
3422 */ |
|
3423 |
|
3424 /** @def _SC_2_PBS_LOCATE |
|
3425 |
|
3426 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3427 |
|
3428 @publishedAll |
|
3429 @externallyDefinedApi |
|
3430 */ |
|
3431 |
|
3432 /** @def _SC_2_PBS_MESSAGE |
|
3433 |
|
3434 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3435 |
|
3436 @publishedAll |
|
3437 @externallyDefinedApi |
|
3438 */ |
|
3439 |
|
3440 /** @def _SC_2_PBS_TRACK |
|
3441 |
|
3442 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3443 |
|
3444 @publishedAll |
|
3445 @externallyDefinedApi |
|
3446 */ |
|
3447 |
|
3448 /** @def _SC_ADVISORY_INFO |
|
3449 |
|
3450 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3451 |
|
3452 @publishedAll |
|
3453 @externallyDefinedApi |
|
3454 */ |
|
3455 |
|
3456 /** @def _SC_BARRIERS |
|
3457 |
|
3458 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3459 |
|
3460 @publishedAll |
|
3461 @externallyDefinedApi |
|
3462 */ |
|
3463 |
|
3464 /** @def _SC_CLOCK_SELECTION |
|
3465 |
|
3466 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3467 |
|
3468 @publishedAll |
|
3469 @externallyDefinedApi |
|
3470 */ |
|
3471 |
|
3472 /** @def _SC_CPUTIME |
|
3473 |
|
3474 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3475 |
|
3476 @publishedAll |
|
3477 @externallyDefinedApi |
|
3478 */ |
|
3479 |
|
3480 /** @def _SC_FILE_LOCKING |
|
3481 |
|
3482 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3483 |
|
3484 @publishedAll |
|
3485 @externallyDefinedApi |
|
3486 */ |
|
3487 |
|
3488 /** @def _SC_GETGR_R_SIZE_MAX |
|
3489 |
|
3490 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3491 |
|
3492 @publishedAll |
|
3493 @externallyDefinedApi |
|
3494 */ |
|
3495 |
|
3496 /** @def _SC_GETPW_R_SIZE_MAX |
|
3497 |
|
3498 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3499 |
|
3500 @publishedAll |
|
3501 @externallyDefinedApi |
|
3502 */ |
|
3503 |
|
3504 /** @def _SC_HOST_NAME_MAX |
|
3505 |
|
3506 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3507 |
|
3508 @publishedAll |
|
3509 @externallyDefinedApi |
|
3510 */ |
|
3511 |
|
3512 /** @def _SC_LOGIN_NAME_MAX |
|
3513 |
|
3514 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3515 |
|
3516 @publishedAll |
|
3517 @externallyDefinedApi |
|
3518 */ |
|
3519 |
|
3520 /** @def _SC_MONOTONIC_CLOCK |
|
3521 |
|
3522 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3523 |
|
3524 @publishedAll |
|
3525 @externallyDefinedApi |
|
3526 */ |
|
3527 |
|
3528 /** @def _SC_MQ_PRIO_MAX |
|
3529 |
|
3530 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3531 |
|
3532 @publishedAll |
|
3533 @externallyDefinedApi |
|
3534 */ |
|
3535 |
|
3536 /** @def _SC_READER_WRITER_LOCKS |
|
3537 |
|
3538 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3539 |
|
3540 @publishedAll |
|
3541 @externallyDefinedApi |
|
3542 */ |
|
3543 |
|
3544 /** @def _SC_REGEXP |
|
3545 |
|
3546 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3547 |
|
3548 @publishedAll |
|
3549 @externallyDefinedApi |
|
3550 */ |
|
3551 |
|
3552 /** @def _SC_SHELL |
|
3553 |
|
3554 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3555 |
|
3556 @publishedAll |
|
3557 @externallyDefinedApi |
|
3558 */ |
|
3559 |
|
3560 /** @def _SC_SPAWN |
|
3561 |
|
3562 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3563 |
|
3564 @publishedAll |
|
3565 @externallyDefinedApi |
|
3566 */ |
|
3567 |
|
3568 /** @def _SC_SPIN_LOCKS |
|
3569 |
|
3570 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3571 |
|
3572 @publishedAll |
|
3573 @externallyDefinedApi |
|
3574 */ |
|
3575 |
|
3576 /** @def _SC_SPORADIC_SERVER |
|
3577 |
|
3578 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3579 |
|
3580 @publishedAll |
|
3581 @externallyDefinedApi |
|
3582 */ |
|
3583 |
|
3584 /** @def _SC_THREAD_ATTR_STACKADDR |
|
3585 |
|
3586 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3587 |
|
3588 @publishedAll |
|
3589 @externallyDefinedApi |
|
3590 */ |
|
3591 |
|
3592 /** @def _SC_THREAD_ATTR_STACKSIZE |
|
3593 |
|
3594 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3595 |
|
3596 @publishedAll |
|
3597 @externallyDefinedApi |
|
3598 */ |
|
3599 |
|
3600 /** @def _SC_THREAD_CPUTIME |
|
3601 |
|
3602 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3603 |
|
3604 @publishedAll |
|
3605 @externallyDefinedApi |
|
3606 */ |
|
3607 |
|
3608 /** @def _SC_THREAD_DESTRUCTOR_ITERATIONS |
|
3609 |
|
3610 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3611 |
|
3612 @publishedAll |
|
3613 @externallyDefinedApi |
|
3614 */ |
|
3615 |
|
3616 /** @def _SC_THREAD_KEYS_MAX |
|
3617 |
|
3618 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3619 |
|
3620 @publishedAll |
|
3621 @externallyDefinedApi |
|
3622 */ |
|
3623 |
|
3624 /** @def _SC_THREAD_PRIO_INHERIT |
|
3625 |
|
3626 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3627 |
|
3628 @publishedAll |
|
3629 @externallyDefinedApi |
|
3630 */ |
|
3631 |
|
3632 /** @def _SC_THREAD_PRIO_PROTECT |
|
3633 |
|
3634 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3635 |
|
3636 @publishedAll |
|
3637 @externallyDefinedApi |
|
3638 */ |
|
3639 |
|
3640 /** @def _SC_THREAD_PRIORITY_SCHEDULING |
|
3641 |
|
3642 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3643 |
|
3644 @publishedAll |
|
3645 @externallyDefinedApi |
|
3646 */ |
|
3647 |
|
3648 /** @def _SC_THREAD_PROCESS_SHARED |
|
3649 |
|
3650 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3651 |
|
3652 @publishedAll |
|
3653 @externallyDefinedApi |
|
3654 */ |
|
3655 |
|
3656 /** @def _SC_THREAD_SAFE_FUNCTIONS |
|
3657 |
|
3658 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3659 |
|
3660 @publishedAll |
|
3661 @externallyDefinedApi |
|
3662 */ |
|
3663 |
|
3664 /** @def _SC_THREAD_SPORADIC_SERVER |
|
3665 |
|
3666 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3667 |
|
3668 @publishedAll |
|
3669 @externallyDefinedApi |
|
3670 */ |
|
3671 |
|
3672 /** @def _SC_THREAD_STACK_MIN |
|
3673 |
|
3674 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3675 |
|
3676 @publishedAll |
|
3677 @externallyDefinedApi |
|
3678 */ |
|
3679 |
|
3680 /** @def _SC_THREAD_THREADS_MAX |
|
3681 |
|
3682 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3683 |
|
3684 @publishedAll |
|
3685 @externallyDefinedApi |
|
3686 */ |
|
3687 |
|
3688 /** @def _SC_TIMEOUTS |
|
3689 |
|
3690 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3691 |
|
3692 @publishedAll |
|
3693 @externallyDefinedApi |
|
3694 */ |
|
3695 |
|
3696 /** @def _SC_THREADS |
|
3697 |
|
3698 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3699 |
|
3700 @publishedAll |
|
3701 @externallyDefinedApi |
|
3702 */ |
|
3703 |
|
3704 /** @def _SC_TRACE |
|
3705 |
|
3706 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3707 |
|
3708 @publishedAll |
|
3709 @externallyDefinedApi |
|
3710 */ |
|
3711 |
|
3712 /** @def _SC_TRACE_EVENT_FILTER |
|
3713 |
|
3714 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3715 |
|
3716 @publishedAll |
|
3717 @externallyDefinedApi |
|
3718 */ |
|
3719 |
|
3720 /** @def _SC_TRACE_INHERIT |
|
3721 |
|
3722 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3723 |
|
3724 @publishedAll |
|
3725 @externallyDefinedApi |
|
3726 */ |
|
3727 |
|
3728 /** @def _SC_TRACE_LOG |
|
3729 |
|
3730 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3731 |
|
3732 @publishedAll |
|
3733 @externallyDefinedApi |
|
3734 */ |
|
3735 |
|
3736 /** @def _SC_TTY_NAME_MAX |
|
3737 |
|
3738 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3739 |
|
3740 @publishedAll |
|
3741 @externallyDefinedApi |
|
3742 */ |
|
3743 |
|
3744 /** @def _SC_TYPED_MEMORY_OBJECTS |
|
3745 |
|
3746 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3747 |
|
3748 @publishedAll |
|
3749 @externallyDefinedApi |
|
3750 */ |
|
3751 |
|
3752 /** @def _SC_V6_ILP32_OFF32 |
|
3753 |
|
3754 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3755 |
|
3756 @publishedAll |
|
3757 @externallyDefinedApi |
|
3758 */ |
|
3759 |
|
3760 /** @def _SC_V6_ILP32_OFFBIG |
|
3761 |
|
3762 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3763 |
|
3764 @publishedAll |
|
3765 @externallyDefinedApi |
|
3766 */ |
|
3767 |
|
3768 /** @def _SC_V6_LP64_OFF64 |
|
3769 |
|
3770 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3771 |
|
3772 @publishedAll |
|
3773 @externallyDefinedApi |
|
3774 */ |
|
3775 |
|
3776 /** @def _SC_V6_LPBIG_OFFBIG |
|
3777 |
|
3778 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3779 |
|
3780 @publishedAll |
|
3781 @externallyDefinedApi |
|
3782 */ |
|
3783 |
|
3784 /** @def _SC_IPV6 |
|
3785 |
|
3786 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3787 |
|
3788 @publishedAll |
|
3789 @externallyDefinedApi |
|
3790 */ |
|
3791 |
|
3792 /** @def _SC_RAW_SOCKETS |
|
3793 |
|
3794 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3795 |
|
3796 @publishedAll |
|
3797 @externallyDefinedApi |
|
3798 */ |
|
3799 |
|
3800 /** @def _SC_SYMLOOP_MAX |
|
3801 |
|
3802 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3803 |
|
3804 @publishedAll |
|
3805 @externallyDefinedApi |
|
3806 */ |
|
3807 |
|
3808 /** @def _SC_ATEXIT_MAX |
|
3809 |
|
3810 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3811 |
|
3812 @publishedAll |
|
3813 @externallyDefinedApi |
|
3814 */ |
|
3815 |
|
3816 /** @def _SC_IOV_MAX |
|
3817 |
|
3818 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3819 |
|
3820 @publishedAll |
|
3821 @externallyDefinedApi |
|
3822 */ |
|
3823 |
|
3824 /** @def _SC_PAGE_SIZE |
|
3825 |
|
3826 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3827 |
|
3828 @publishedAll |
|
3829 @externallyDefinedApi |
|
3830 */ |
|
3831 |
|
3832 /** @def _SC_XOPEN_CRYPT |
|
3833 |
|
3834 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3835 |
|
3836 @publishedAll |
|
3837 @externallyDefinedApi |
|
3838 */ |
|
3839 |
|
3840 /** @def _SC_XOPEN_ENH_I18N |
|
3841 |
|
3842 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3843 |
|
3844 @publishedAll |
|
3845 @externallyDefinedApi |
|
3846 */ |
|
3847 |
|
3848 /** @def _SC_XOPEN_LEGACY |
|
3849 |
|
3850 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3851 |
|
3852 @publishedAll |
|
3853 @externallyDefinedApi |
|
3854 */ |
|
3855 |
|
3856 /** @def _SC_XOPEN_REALTIME |
|
3857 |
|
3858 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3859 |
|
3860 @publishedAll |
|
3861 @externallyDefinedApi |
|
3862 */ |
|
3863 |
|
3864 /** @def _SC_XOPEN_REALTIME_THREADS |
|
3865 |
|
3866 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3867 |
|
3868 @publishedAll |
|
3869 @externallyDefinedApi |
|
3870 */ |
|
3871 |
|
3872 /** @def _SC_XOPEN_SHM |
|
3873 |
|
3874 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3875 |
|
3876 @publishedAll |
|
3877 @externallyDefinedApi |
|
3878 */ |
|
3879 |
|
3880 /** @def _SC_XOPEN_STREAMS |
|
3881 |
|
3882 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3883 |
|
3884 @publishedAll |
|
3885 @externallyDefinedApi |
|
3886 */ |
|
3887 |
|
3888 /** @def _SC_XOPEN_UNIX |
|
3889 |
|
3890 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3891 |
|
3892 @publishedAll |
|
3893 @externallyDefinedApi |
|
3894 */ |
|
3895 |
|
3896 /** @def _SC_XOPEN_VERSION |
|
3897 |
|
3898 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3899 |
|
3900 @publishedAll |
|
3901 @externallyDefinedApi |
|
3902 */ |
|
3903 |
|
3904 /** @def _SC_XOPEN_XCU_VERSION |
|
3905 |
|
3906 POSIX-style system configuration variable accessors (for the sysconf function). |
|
3907 |
|
3908 @publishedAll |
|
3909 @externallyDefinedApi |
|
3910 */ |
|
3911 |
|
3912 /** @def _CS_PATH |
|
3913 |
|
3914 Keys for the confstr(3) function. |
|
3915 |
|
3916 @publishedAll |
|
3917 @externallyDefinedApi |
|
3918 */ |
|
3919 |
|
3920 /** @def _CS_POSIX_V6_ILP32_OFF32_CFLAGS |
|
3921 |
|
3922 Keys for the confstr(3) function. |
|
3923 |
|
3924 @publishedAll |
|
3925 @externallyDefinedApi |
|
3926 */ |
|
3927 |
|
3928 /** @def _CS_POSIX_V6_ILP32_OFF32_LDFLAGS |
|
3929 |
|
3930 Keys for the confstr(3) function. |
|
3931 |
|
3932 @publishedAll |
|
3933 @externallyDefinedApi |
|
3934 */ |
|
3935 |
|
3936 /** @def _CS_POSIX_V6_ILP32_OFF32_LIBS |
|
3937 |
|
3938 Keys for the confstr(3) function. |
|
3939 |
|
3940 @publishedAll |
|
3941 @externallyDefinedApi |
|
3942 */ |
|
3943 |
|
3944 /** @def _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS |
|
3945 |
|
3946 Keys for the confstr(3) function. |
|
3947 |
|
3948 @publishedAll |
|
3949 @externallyDefinedApi |
|
3950 */ |
|
3951 |
|
3952 /** @def _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS |
|
3953 |
|
3954 Keys for the confstr(3) function. |
|
3955 |
|
3956 @publishedAll |
|
3957 @externallyDefinedApi |
|
3958 */ |
|
3959 |
|
3960 /** @def _CS_POSIX_V6_LP64_OFF64_CFLAGS |
|
3961 |
|
3962 Keys for the confstr(3) function. |
|
3963 |
|
3964 @publishedAll |
|
3965 @externallyDefinedApi |
|
3966 */ |
|
3967 |
|
3968 /** @def _CS_POSIX_V6_LP64_OFF64_CFLAGS |
|
3969 |
|
3970 Keys for the confstr(3) function. |
|
3971 |
|
3972 @publishedAll |
|
3973 @externallyDefinedApi |
|
3974 */ |
|
3975 |
|
3976 /** @def _CS_POSIX_V6_LP64_OFF64_LDFLAGS |
|
3977 |
|
3978 Keys for the confstr(3) function. |
|
3979 |
|
3980 @publishedAll |
|
3981 @externallyDefinedApi |
|
3982 */ |
|
3983 |
|
3984 /** @def _CS_POSIX_V6_LP64_OFF64_LIBS |
|
3985 |
|
3986 Keys for the confstr(3) function. |
|
3987 |
|
3988 @publishedAll |
|
3989 @externallyDefinedApi |
|
3990 */ |
|
3991 |
|
3992 /** @def _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS |
|
3993 |
|
3994 Keys for the confstr(3) function. |
|
3995 |
|
3996 @publishedAll |
|
3997 @externallyDefinedApi |
|
3998 */ |
|
3999 |
|
4000 /** @def optopt |
|
4001 |
|
4002 character checked for validity |
|
4003 |
|
4004 @publishedAll |
|
4005 @externallyDefinedApi |
|
4006 */ |
|
4007 |
|
4008 /** @def opterr |
|
4009 |
|
4010 if error message should be printed |
|
4011 |
|
4012 @publishedAll |
|
4013 @externallyDefinedApi |
|
4014 */ |
|
4015 |
|
4016 /** @def optind |
|
4017 |
|
4018 index into parent argv vector |
|
4019 |
|
4020 @publishedAll |
|
4021 @externallyDefinedApi |
|
4022 */ |
|
4023 |
|
4024 /** @def optarg |
|
4025 |
|
4026 argument associated with option |
|
4027 |
|
4028 @publishedAll |
|
4029 @externallyDefinedApi |
|
4030 */ |
|
4031 |
|
4032 /** @def optreset |
|
4033 |
|
4034 reset getopt |
|
4035 |
|
4036 @publishedAll |
|
4037 @externallyDefinedApi |
|
4038 */ |
|
4039 |
|
4040 /** @typedef typedef __off_t off_t |
|
4041 |
|
4042 Used for file sizes. |
|
4043 |
|
4044 @publishedAll |
|
4045 @externallyDefinedApi |
|
4046 */ |
|
4047 |
|
4048 /** @typedef typedef __gid_t gid_t |
|
4049 |
|
4050 Used for group IDs. |
|
4051 |
|
4052 @publishedAll |
|
4053 @externallyDefinedApi |
|
4054 */ |
|
4055 |
|
4056 /** @typedef typedef __pid_t pid_t |
|
4057 |
|
4058 Used for process IDs and process group IDs. |
|
4059 |
|
4060 @publishedAll |
|
4061 @externallyDefinedApi |
|
4062 */ |
|
4063 |
|
4064 /** @typedef typedef __size_t size_t |
|
4065 |
|
4066 Used for sizes of objects. |
|
4067 |
|
4068 @publishedAll |
|
4069 @externallyDefinedApi |
|
4070 */ |
|
4071 |
|
4072 /** @typedef typedef __uid_t uid_t |
|
4073 |
|
4074 Used for user IDs. |
|
4075 |
|
4076 @publishedAll |
|
4077 @externallyDefinedApi |
|
4078 */ |
|
4079 |
|
4080 /** @typedef typedef __useconds_t useconds_t |
|
4081 |
|
4082 Used for time in microseconds. |
|
4083 |
|
4084 @publishedAll |
|
4085 @externallyDefinedApi |
|
4086 */ |
|
4087 |
|
4088 |
|
4089 |
|
4090 |
|
4091 |