資源簡介
treeNMS-1.7.3 全平臺通用,包含缺失文件??!
代碼片段和文件信息
/*?Licensed?to?the?Apache?Software?Foundation?(ASF)?under?one?or?more
?*?contributor?license?agreements.??See?the?NOTICE?file?distributed?with
?*?this?work?for?additional?information?regarding?copyright?ownership.
?*?The?ASF?licenses?this?file?to?You?under?the?Apache?License?Version?2.0
?*?(the?“License“);?you?may?not?use?this?file?except?in?compliance?with
?*?the?License.??You?may?obtain?a?copy?of?the?License?at
?*
?*?????http://www.apache.org/licenses/LICENSE-2.0
?*
?*?Unless?required?by?applicable?law?or?agreed?to?in?writing?software
?*?distributed?under?the?License?is?distributed?on?an?“AS?IS“?BASIS
?*?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND?either?express?or?implied.
?*?See?the?License?for?the?specific?language?governing?permissions?and
?*?limitations?under?the?License.
?*/
/*?@version?$Id:?arguments.c?1453280?2013-03-06?10:45:30Z?mturk?$?*/
#include?“jsvc.h“
#include?
#include?
/*?Return?the?argument?of?a?command?line?option?*/
static?char?*optional(int?argc?char?*argv[]?int?argi)
{
????argi++;
????if?(argi?>=?argc)
????????return?NULL;
????if?(argv[argi]?==?NULL)
????????return?NULL;
????if?(argv[argi][0]?==?‘-‘)
????????return?NULL;
????return?strdup(argv[argi]);
}
static?char?*memstrcat(char?*ptr?const?char?*str?const?char?*add)
{
????size_t?nl?=?1;
????int???nas?=?ptr?==?NULL;
????if?(ptr)
????????nl?+=?strlen(ptr);
????if?(str)
????????nl?+=?strlen(str);
????if?(add)
????????nl?+=?strlen(add);
????ptr?=?(char?*)realloc(ptr?nl);
????if?(ptr)?{
????????if?(nas)
????????????*ptr?=?‘\0‘;
????????if?(str)
????????????strcat(ptr?str);
????????if?(add)
????????????strcat(ptr?add);
????}
????return?ptr;
}
static?char*?eval_ppath(char?*strcp?const?char?*pattern)
{
????glob_t?globbuf;
????char???jars[PATH_MAX?+?1];
????if?(strlen(pattern)?>?(sizeof(jars)?-?5))?{
????????return?memstrcat(strcp?pattern?NULL);
????}
????strcpy(jars?pattern);
????strcat(jars?“.jar“);
????memset(&globbuf?0?sizeof(glob_t));
????if?(glob(jars?GLOB_ERR?NULL?&globbuf)?==?0)?{
????????size_t?n;
????????for?(n?=?0;?n?????????????strcp?=?memstrcat(strcp?globbuf.gl_pathv[n]?“:“);
????????????if?(strcp?==?NULL)?{
????????????????globfree(&globbuf);
????????????????return?NULL;
????????????}
????????}
????????strcp?=?memstrcat(strcp?globbuf.gl_pathv[n]?NULL);
????????globfree(&globbuf);
????}
????return?strcp;
}
#define?JAVA_CLASSPATH??????“-Djava.class.path=“
/**
?*?Call?glob?on?each?PATH?like?string?path.
?*?Glob?is?called?only?if?the?part?ends?with?asterisk?in?which
?*?case?asterisk?is?replaced?by?*.jar?when?searching
?*/
static?char*?eval_cpath(const?char?*cp)
{
????char?*cpy?=?memstrcat(NULL?JAVA_CLASSPATH?cp);
????char?*gcp?=?NULL;
????char?*pos;
????char?*ptr;
????if?(!cpy)
????????return?NULL;
????ptr?=?cpy?+?sizeof(JAVA_CLASSPATH)?-?1;;
????while?((pos?=?strchr(ptr?‘:‘)))?{
????????*pos?=?‘\0‘;
????????if?(gcp)
????????????gcp?=?memstrcat(gcp?“:“?NULL);
????????else
???????????
評論
共有 條評論