Что значит (non) reversible conversion в контексте перекодировки текста из одной символьной кодировки в другую?
М?
М?
Допустим есть тип определенный оператором typedef, определение может быть разным. Есть ли способ в условиях директив препроцессора (#if/#ifdef и т.п.) определить что за тип стоит в определении, а точнее его размер?
p.s. c99.
Пишу программу, она делает лог в файл, лог идет в юникоде (UCS4/wchar_t), а потом выясняется что я этот текст ничем прочитать не могу.
В man 2 select о таймауте написано:
The timeout argument specifies the minimum interval that select() should block waiting for a file descriptor to become ready. (This interval will be rounded up to the system clock granularity, and kernel scheduling delays mean that the blocking interval may overrun by a small amount.)
Где можно узнать этот granularity?
Я не понимаю что происходит, кажется у меня уже едет крыша, с прошлой недели бьюсь над тем что бы осознать в чем проблема. Линковщик (ld) ругается на две функции в проекте. пишет:
/tmp/ccZThUym.o: In function `load_reg_file':
registers.c:(.text+0x0): multiple definition of `load_reg_file'
/tmp/ccqNKejG.o:regfileio.c:(.text+0x0): first defined here
...
collect2: error: ld returned 1 exit status
Версии опробованных ld: 2.22 и 2.23.2
Не могу собрать проект с inline подстановками. Вот например:
head.h:
#include <ctype.h>
inline char* strbegin(char* s)
{
while( isblank(*s) ) ++s;
return s;
}
proc.c:
#include "head.h"
main.c:
#include "head.h"
int main(int argc, char* argv[])
{
return 0;
}
$gcc main.c proc.c
Линковщик сообщает что:
/tmp/ccQRGJfn.o: In function `strbegin':
proc.c:(.text+0x0): multiple definition of `strbegin'
/tmp/ccKc1R22.o:main.c:(.text+0x0): first defined here
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
ЧЯДНТ?
Пытаюсь перед определением макро, если макро с таким именем уже есть, сохранить старое значение, потом назначить новое значение, а после использования макро вернуть старое значение этому имени.
Например:
#define NUM 8
#ifdef NUM
# define pre_NUM NUM
# undef NUM
#endif
#define NUM 4
//Использую NUM
#undef NUM
#if defined pre_NUM
# define NUM pre_NUM
# undef pre_NUM
#endif
Последовательный порт открыт в raw режиме, а в man 2 read написано что «zero indicates end of file», а прерывание из-за полученного сигнала возвращает -1. Стоит ли делать лишнюю (или не лишнюю) проверку на 0?
P.S. man:
RETURN VALUE
On success, the number of bytes read is returned (zero indicates end of file), and the file position is advanced by this number. It is not an error if this number is smaller than the number of bytes requested; this may happen for example because fewer bytes are actually available right now (maybe because we were close to end-of-file, or because we are reading from a pipe, or from a terminal), or because read() was interrupted by a signal. On error, -1 is returned, and errno is set appropriately. In this case it is left unspecified whether the file position (if any) changes.
Во время чтения из tty (побайтово) входящего пакета обнаруживается что пакет содержит ошибку или еще какую нибудь лабуду. Как сбросить/отменить оставшееся непрочитанное содержимое пакета (очистить входящий буфер или что-то вроде того) для отправки исходящего пакета или для дальнейшего прослушивания порта на предмет следующего входящего (пакета) запроса?
В моем случае пакеты ModBus.
Желательно, конечно, на русском, но на английском тоже сойдет если нет первого.
Перемещено Pinkbyte из linux-org-ru
Как правильно в UNIX-среде именовать (в речи) последовательный порт? В некоторых источниках его называют терминалом, на сколько это правильно?
void *memset(void *s, int c, size_t n);Почему не char, заполняется все равно одним байтом?
Как в командном интерпретаторе dosbox получить значение переменной окружения? %переменная% почему-то не работает.
Как получить путь к точке монтирования devtmpfs (/dev) без нарушения совместимости с POSIX, где об этом могу прочитать?
Скажем есть структура:
struct st {
long fld1;
}
У меня в файле группа макро-констант (Си) с общим для группы назначением. Я могу как нибудь отделить документацию для этой группы от остальных макро-определений этого файла? На пример общий заголовок для всей группы, а дальше описание для каждой константы отдельно.
Например uint32_t* при единичном смещении каждый раз смещается на 4, uint16_t* на 2, и т.п. Мой компилятор показывает 1, но будет ли так всегда?
Можно ли Doxygen-у указывать favicon для документации в формате html?
Всегда ли sizeof(void*) == 8 означает 64 разрядную машину?
М?
| ← назад | следующие → |