资源简介
glibc-2.7 源代码,原来在CSDN没有下载成功,今天上传一个 :)
代码片段和文件信息
/* Skeleton for test programs.
Copyright (C) 19982000-2004 2005 Free Software Foundation Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper 1998.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not write to the Free
Software Foundation Inc. 59 Temple Place Suite 330 Boston MA
02111-1307 USA. */
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
/* The test function is normally called ‘do_test‘ and it is called
with argc and argv as the arguments. We nevertheless provide the
possibility to overwrite this name. */
#ifndef TEST_FUNCTION
# define TEST_FUNCTION do_test (argc argv)
#endif
#ifndef TEST_DATA_LIMIT
# define TEST_DATA_LIMIT (64 << 20) /* Data limit (bytes) to run with. */
#endif
#define OPT_DIRECT 1000
#define OPT_TESTDIR 1001
static struct option options[] =
{
#ifdef CMDLINE_OPTIONS
CMDLINE_OPTIONS
#endif
{ “direct“ no_argument NULL OPT_DIRECT }
{ “test-dir“ required_argument NULL OPT_TESTDIR }
{ NULL 0 NULL 0 }
};
/* PID of the test itself. */
static pid_t pid;
/* Directory to place temporary files in. */
static const char *test_dir;
/* List of temporary files. */
struct temp_name_list
{
struct qelem q;
const char *name;
} *temp_name_list;
/* Add temporary files in list. */
static void
__attribute__ ((unused))
add_temp_file (const char *name)
{
struct temp_name_list *newp
= (struct temp_name_list *) calloc (sizeof (*newp) 1);
if (newp != NULL)
{
newp->name = name;
if (temp_name_list == NULL)
temp_name_list = (struct temp_name_list *) &newp->q;
else
insque (newp temp_name_list);
}
}
/* Delete all temporary files. */
static void
delete_temp_files (void)
{
while (temp_name_list != NULL)
{
remove (temp_name_list->name);
temp_name_list = (struct temp_name_list *) temp_name_list->q.q_forw;
}
}
/* Create a temporary file. */
static int
__attribute__ ((unused))
create_temp_file (const char *base char **filename)
{
char *fname;
int fd;
fname = (char *) malloc (strlen (test_dir) + 1 + strlen (base)
+ sizeof (“XXXXXX“));
if (fname == NULL)
{
puts (“out o
评论
共有 条评论