我正在尝试将简单的shell作为锻炼给自己。我正在编写一个应该在PATH中找到可执行文件的函数,并返回一个指向字符串的指针,该字符串包含可执行文件的完整路径。这是我到目前为止所拥有的;
/*bunch of includes here*/
/*
* Find executable in path, return NULL
* if can't find.
*/
char *find_executable(char *command)
{
const char *PATH = getenv("PATH");
DIR *dp;
/* get each pathname, and try to find executable in there. */
}
int main(int argc,char *argv[])
{ /* nothing intersting here ...*/
}
我想知道如何分离路径的每个部分,并在for循环中处理这些部分。
答案 0 :(得分:1)
说道路将被分开;
您可以使用strtok函数生成拆分令牌
例如
char *str = "/foo/a1/b1;/bar/a1/b1"
现在你可以使用strtok函数作为
char delims[] = ";"
char *result = NULL;
result = strtok( str, delims );
while( result != NULL ) {
dp = result;
result = strtok( NULL, delims );
}