
Оказывается, в C99 можно выделять массивы на стеке в рантайме:
```C
int i, arr[i+1];
scanf("%i", &i);
```
Фича называется variable length arrays: http://gcc.gnu.org/onlinedocs/gcc-4.7.2/...
Оказывается, в C99 можно выделять массивы на стеке в рантайме:
```C
int i, arr[i+1];
scanf("%i", &i);
```
Фича называется variable length arrays: http://gcc.gnu.org/onlinedocs/gcc-4.7.2/...
А как мне проверить, что scanf() дочитал строку до конца? Например, я делаю scanf("%i", ...), а пользователь вводит 123abc — 123 прочитается, а abc останется на вводе до следующего scanf() (или read(), или что там будет читать ввод). Как убедиться, что такого не случиться?
В моём сервере есть два UPD-сокета. В бесконечном цикле крутится код, который с помощью poll ждёт POLLIN и делает recvfrom() на каждом готовом сокете. Кроме того, отдельная нить с помощью этих же сокетов что-то отправляет. Всё это месиво работает, а вот клиент падает, жалуясь на Bad file descriptor.
Таких же ... more →
Пишу UDP-сервер. Он биндит пару сокетов (вообще хз сколько, это от результата getaddrinfo зависит) и висит на них poll'ом. При получении сообщения он запоминает адресс клиента в структуре sockaddr_storage. Время от времени ему нужно что-то отправлять клиентам, и тут всплывает проблема: клиенты могут быть подключены ... more →
http://www.akkadia.org/drepper/userapi-i... — Userlevel IPv6 Programming Introduction
Узнал сегодня об одной интересной штуке, которую сам автор назвал «calls table». Применяется она тогда, когда у нас есть некий union (который, есстественно, обёрнут в struct и сопровохжается флагом, указывающим на тип, причём значения флага принадлежат некому enum) и мы хотим по-разному обрабатывать его содержимое ... more →
Псто, в связи с повышающимися расходами на жильё мне нужна онлайн-работа (в смысле, связь с работодателем по инету, а не ножками в контору топать) с неполным рабочим днём.
Кратко о себе: линуксоид-дебианщик с почти трёхлетним стажем, более-менее владею Си (написал пару патчей для любимого pdf ридера Zathura), ... more →
Господа, а подскажите-ка мне, пожалуйста, могу ли я обработку ошибок после стандартных вызовов выделять в функии? Например, у меня в программе во многих местах используется fork(), и после каждого pid = fork() приходится писать вот что:
if(pid == -1) {
perror("Error in fork():");
exit(126);
}
Собственно, ... more →
gelraen
hirthwork
utros
analizer
238328
ulidtko
kb
Minoru
werehuman
4da
Nico-izo
SirAnthony
dorfe
eoranged
lexszero
L29Ah
jabber
generatorglukoff
MPogoda
asmer
madInsane
arts
magog
gisty
part1zano
K900
Like-all
nya
inst
17eyes
xaos
zamotivator
zweipluse
nstm0
polatov
0x2207
eurekafag
DOMr
emu
anonkz
carnero
richmond
Rejjin