关于path_alloc函数(APUE)
来源:互联网 发布:陆维开料软件 编辑:程序博客网 时间:2024/05/16 10:38
#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);
}
或
char*path_alloc(int* size)
{
char *p = NULL;
if(!size) return NULL;
p = malloc(256);
if(p)
*size = 256;
else
*size = 0;
return p;
}
#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);
}
或
char*path_alloc(int* size)
{
char *p = NULL;
if(!size) return NULL;
p = malloc(256);
if(p)
*size = 256;
else
*size = 0;
return p;
}
- 关于path_alloc函数(APUE)
- 关于path_alloc 函数(APUE)
- 关于path_alloc()函数
- 关于apue第二章获取绝对路径长度程序path_alloc()分析
- apue 4.23 path_alloc未定义的引用问题
- path_alloc()
- path_alloc
- APUE程序清单4-7编译错误:path_alloc未定义
- apue第三版P106:ftw程序中使用的path_alloc
- 关于apue中 open函数
- apue-alarm和pause函数,关于信号
- 关于APUE 图8-30 nice函数的例子
- wait函数和僵尸进程(APUE)
- dup函数和dup2函数(读APUE)
- APUE函数笔记: 附录
- 【APUE学习心得】fork函数
- APUE:一些函数
- APUE--pthreadatfork()函数理解
- hdu 1455 Sticks
- iis HTTP 500内部服务器错误
- SQLSERVER ErrorLog文件
- SVN常用命令
- Make Linux faster and lighter
- 关于path_alloc函数(APUE)
- rqnoj-669
- 泛型笔记
- WPF Animation Provider
- confirm的运用
- 项目日程----01
- web应用插件化
- ubuntu开启SSH服务
- 找零钱问题(C语言实现)——贪心算法应用(1)