我使用下面的功能附加'>'到一个字符串。当我调用该函数时,它第一次工作正常,但是,每次之后,而不是创建一个带有这些括号中的一个的新字符串'>'附加后,它会不断附加到原始字符串。我如何阻止它这样做?
/home/user >
/home/user > >
/home/user > > > etc
Char * get_prompt(){
char *pwd;
pwd = getenv("PWD");
strcat(pwd, " >");
return pwd;
}
答案 0 :(得分:1)
修改getenv
返回的字符串是不安全的。相反,你必须复制字符串,然后附加到它:
char *pwd = malloc( sizeof( char ) * MAX_LEN );
strcpy( pwd, getenv("PWD") );
strcat( pwd, " >" );
return pwd; // remember to free this memory.