Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
¿Dónde está el código de glibc para setjmp?

Estaba interesado en qué hace exactamente setjmp al menos en x86_64 Linux, así que busqué en el código fuente de glibc , pero realmente no puedo encontrar dónde se guarda el registro. ¿Podrías explicar qué está pasando aquí?

setjmp.h

 extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROWNL; #define setjmp(env) _setjmp (env)

bsd-_setjmp.c

 int _setjmp (jmp_buf env) { return __sigsetjmp (env, 0); } libc_hidden_def (_setjmp)

setjmp.c

 int __libc_sigsetjmp (jmp_buf env, int savemask) { __sigjmp_save (env, savemask); __set_errno (ENOSYS); return 0; } weak_alias (__libc_sigsetjmp, __sigsetjmp) stub_warning (__sigsetjmp)

sigjmp.c

 int __sigjmp_save (sigjmp_buf env, int savemask) { env[0].__mask_was_saved = (savemask && __sigprocmask (SIG_BLOCK, (sigset_t *) NULL, &env[0].__saved_mask) == 0); return 0; }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

setjmp es una macro que llama a _setjmp . Para la arquitectura x86_64, se define en ../sysdeps/x86_64/bsd-_setjmp.S . _setjmp luego llamará a __sigsetjmp , definido en ../sysdeps/x86_64/setjmp.S ; esta función depende estrictamente de la plataforma y debe implementarse en ensamblador.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!