anonymous (*) (2003-02-25 01:48:00.737):
> И вполне доволен.
Скорее всего, просто пока везет :)
1. strtok использует статич. буфер. Она не реентрабельна, не thread safe.
2. Если ты подсунешь ей "\n", то она, вместо "", вернет NULL, а с str
ничего не сделает, т.е. просто оставит "\n"
2roy (*) (2003-02-24 19:07:14.861):
Дошло. что хотел сказать DonkeyHot (*) (2003-02-25 17:20:01.637) -
на subj посмотрел.
Он прав. Из перечисленного мной можно юзать только 2.
{
char *ptr=str;
for(;*ptr!='\0';ptr++)if(*ptr=='\n'){
*ptr='\0';break;
}
}
Остальное может сглючить, если stdin не присоединен к tty.
E.g.:
echo -n "1234" |theproga
Вариант 1 вернет 123, вариант 3 слетит по segv.