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