Sunday, July 22, 2012

不能隨便將字串丟入strtok

雖然知道strtok會把傳入的字串切亂,剛剛還是把getenv("PATH")所取回的環境變數PATH丟進strtok,結果就發生奇怪的Bug

char *path;
char *ptr;

path = getenv("PATH");
ptr = strtok(path,":");
while(ptr != NULL){
    printf("%s\n",ptr);

    ptr = strtok(NULL,":");
}
//此程式的環境變數PATH已經被strtok切亂

execlp("ps","ps",NULL));
//execlp取到不正確的PATH,找不到ps這個程式

No comments:

Post a Comment