从函数返回一个String并在C中再次调用它



我使用下面的函数将'>'附加到字符串。当我调用这个函数时,它第一次工作得很好,然而,在那之后的每一次,它不是创建一个带有这些括号'>'的新字符串,而是继续附加到原始字符串。我怎样才能阻止它这样做?

/home/user >
/home/user > >
/home/user > > >   etc

Char * get_prompt(){
    char *pwd;
    pwd = getenv("PWD");
    strcat(pwd, " >");
    return pwd;
}

修改getenv返回的字符串是不安全的。相反,您必须复制字符串,然后将其追加:

char *pwd = malloc( sizeof( char ) * MAX_LEN );
strcpy( pwd, getenv("PWD") );
strcat( pwd, " >" );
return pwd; // remember to free this memory.

相关内容

最新更新