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

398
Views
advertencia: el uso de `tmpnam' es peligroso, mejor usa `mkstemp'

(Nota: esta no es una pregunta duplicada)

Estoy usando la función libc tmpnam y recibo la siguiente advertencia:

 warning: the use of 'tmpnam' is dangerous, better use 'mkstemp'

Mi pregunta no es "cómo deshabilitar la advertencia", sino "¿qué función debo usar en su lugar"? mkstemp no ayuda, porque no estoy tratando de crear un archivo temporal, estoy creando un directorio temporal. Y AFAIK, no hay una función API para eso.

Entonces, si se supone que no debo usar tmpnam , ¿ qué se supone que debo usar?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Estás buscando mkdtemp :

 mkdtemp - create a unique temporary directory

p.ej,

 #include <stdlib.h> #include <string.h> ... char templatebuf[80]; char *mkdirectory = mkdtemp(strcpy(templatebuf, "/tmp/mkprogXXXXXX"));

usando strcpy para asegurarse de que el parámetro pasado a mkdtemp se pueda escribir (c89), o

 #include <stdlib.h> ... char templatebuf[] = "/tmp/mkprogXXXXXX"; char *mkdirectory = mkdtemp(templatebuf);

con c99.

Dado que la función es "nueva" (solo estandarizada en los últimos diez años, aunque se proporcionó a mediados de la década de 1990 en Linux), debe activar la función en los archivos de encabezado con una definición de preprocesador (que puede diferir de una plataforma a otra). otro). Lo más simple para Linux es definir _GNU_SOURCE , por ejemplo,

 gcc -D_GNU_SOURCE -o foo foo.c
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!