Image

Imagesobak wrote in Imageru_cpp

Category:

Прожорливый демон

Есть FreeBSD. А есть тривиальный код демона:


#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
  FILE* pidf = 0;

  printf("Noname daemon v 1.0.0\n");
  daemon(1, 0);

  if (pidf = fopen("noname.pid", "wb"))
  {
    fprintf(pidf, "%u", getpid());
    fclose(pidf);
  }

  for (;;)
    sleep(1);

  return 0;
}

Как видно, он ничего не делает кроме того, что бессмысленно висит в памяти.


Компилирую я его следующим образом:
gcc main.c -pie -I/include -I. -lc -o noname

Внимание, вопрос: почему top показывает, что такой мелкий демон занимает 1272K памяти (из них 572 резидентной)? Куда столько? И можно ли сократить этот объём?