// mnt2.c — SDD 25 / T19: dónde está el muro de capas del `mount(2)` clásico. // // Existe porque bisecarlo con el `mount(8)` de util-linux da un muro FALSO: acá se rendía entre 8 // y 12 capas (1 247 B de opciones) donde el kernel monta 41. bwrap usa `mount(2)`, así que el muro // que importa es éste. // // cc -O2 -o mnt2 mnt2.c -include errno.h // sudo ./mnt2 (dir-base necesita mnt/, upper/ y work/) #define _GNU_SOURCE #include #include #include #include #include int main(int argc,char**argv){ int n=atoi(argv[1]); const char*lista=argv[2]; const char*base=argv[3]; char capa[128][512]; int c=0; char ln[512]; FILE*fp=fopen(lista,"r"); while(c<128&&fgets(ln,sizeof ln,fp)){size_t l=strlen(ln);while(l&&ln[l-1]=='\n')ln[--l]=0;if(l)snprintf(capa[c++],512,"%s",ln);} fclose(fp); if(n>c){printf("sólo hay %d capas\n",c);return 1;} char o[16384]; int off=snprintf(o,sizeof o,"lowerdir="); for(int i=0;i %s%s\n",n,lowlen,off,r==0?"OK":"FALLA: ",r==0?"":strerror(errno)); if(r==0) umount(m); return r==0?0:1; }