Возник вопрос правильно ли такое
char str[50]
while ( (n = read(sockfd, str, 49)) > 0)
{
str[n]='\0';
printf("%s",str);
}или лучше так
char str[5]
while ( (n = read(sockfd, str, 1)) > 0)
{
str[n]='\0';
printf("%с",str[0]);
}))) или все равно и так и так
Разницы вроде как нет, а вот во втором случае для каждого символа делается системный вызов, соответственно скорость выполнения понижается.
И так и так не оптимально :)
>И так и так не оптимально :)И неправильно, потому что NUL-и во входном потоке "всё портят".
...и нет, в "постановке" задачи не говорилось, что входжные данные такие или эдакие.
Во втором случае не понятно, зачем вообще массив и '\0'. Кроме того, будет работать крайне неэффективно.Первый правильный, за исключением того, что если в потоке будут нули, куски строк не будут выведены.
Лучше так:
char str[50]
while ((n = read(sockfd, str, 50)) > 0)
write(STDOUT_FILENO, str, n);
Если не знаете, то и не советуйте
>Если не знаете, то и не советуйтеА как тогда было бы оптимально? , понятное дело что там где по байтно конец строки не нужен
>Если не знаете, то и не советуйтеЛибо сразу показывай как правильно, либо не высовывайся. Твои "познания" меня уже неоднократно умиляли.
>Если не знаете, то и не советуйтеХм, и как-же, по-вашему, правильно?