13-01-17-->2
2013-01-17 12:47
281 查看
POSIX是可移植的操作系统接口(Portable Operating System Interface).该标准的目的是提高应该程序在各种UNIX系统之间的可移植性。
2-3:为路径名动态分配空间
:如若在<limits.h>中定义了常量PATH_MAX,就没有任何问题;如果没有定义,则需要调用pathconf。如果pathconf指明PATH_MAX是不确定的,那么只能猜测这个值。
2-3:为路径名动态分配空间
#include "apue.h" #include <errno.h> #include <limits.h> #ifdef PATH_MAX static int pathmax = PATH_MAX; #else static int pathmax = 0; #endif #define SUSV3 200112L static long posix_version = 0; /* If PATH_MAX is indeterminate, no guarantee this is adequate */ #define PATH_MAX_GUESS 1024 char * path_alloc(int *sizep) /* also return allocated size, if nonnull */ { char *ptr; int size; if (posix_version == 0) posix_version = sysconf(_SC_VERSION); if (pathmax == 0) { /* first time through */ errno = 0; if ((pathmax = pathconf("/", _PC_PATH_MAX)) < 0) { if (errno == 0) pathmax = PATH_MAX_GUESS; /* it's indeterminate */ else err_sys("pathconf error for _PC_PATH_MAX"); } else { pathmax++; /* add one since it's relative to root */ } } if (posix_version < SUSV3) size = pathmax + 1; else size = pathmax; if ((ptr = malloc(size)) == NULL) err_sys("malloc error for pathname"); if (sizep != NULL) *sizep = size; return(ptr); }
:如若在<limits.h>中定义了常量PATH_MAX,就没有任何问题;如果没有定义,则需要调用pathconf。如果pathconf指明PATH_MAX是不确定的,那么只能猜测这个值。
相关文章推荐
- 13-01-23-->8
- 13-01-24-->9
- 13-01-27-->12
- 13-01-18-->3
- 13-01-25-->10
- 13-01-29-->14
- 13-01-26-->11
- 13-01-19-->4
- 13-01-16-->1
- 13-01-20-->5
- 13-01-21-->6
- 13-01-22-->7
- 13-01-28-->13
- <Lua程序设计(第二版)>书摘-13 日期与时间
- <LeetCode OJ> 13 / 12 Roman to Integer & Integer to Roman
- 实时开发框架Meteor API解读系列<七> Collection --01
- <转>Android API 中文(13) —— ToggleButton
- Linux-world-2012-January->13(error: 'S3C24X0_GPIO' has no member named 'GPACON')
- Note on <Beginning Microsoft SQL Server 2012 Programming> - 01
- <构建之法>13-17