Архив за Январь 2007

void* как указатель на функцию, в ANSI C

Январь 9, 2007

Вчера узнал, что ANSI C не разрешает приводить void* к указателю на функцию, даже явно, например код:


void *(*screngine_init)(void);
screngine_init = dlsym(screngine_lib, “screngine_init”);
(*screngine_call)(void);

будет не корректным.
Существует два варианта, как справиться с этой задачей:

  1. Использовать функцию dlfunc заместо dlsym.
  2. Использовать union такого вида: union { void *ptr; void (*call)(void); }

(далее…)

sysadnotes I

Январь 2, 2007

активация рута в postgresql:
#createuser -P -U pgsql root
шутдаун ноды нетграфа:
#ngctl shutdown ng0