Herramientas de usuario

Herramientas del sitio


strings

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
strings [2014/08/20 18:16] – [Desplegar texto en la salida estándar] lmateustrings [2015/03/31 12:50] (actual) – [Leer de la entrada estándar] lmateu
Línea 63: Línea 63:
 } }
 </code> </code>
 +
 +=== Ejercicio 1 ===
 +
 +Resuelva la pregunta 1 del [[http://users.dcc.uchile.cl/~lmateu/CC3301/controles/c1-141.pdf|control 1 del semestre Otoño de 2014]].  Pruebe su solución con el archivo [[http://users.dcc.uchile.cl/~lmateu/CC3301/download/subst.zip|subst.zip]].  Implemente su solución en el archivo substituir.c.  Compílelo con make y ejecútelo.  El programa le dirá si su solución satisface todos los tests del enunciado.
  
 ==== Desplegar texto en la salida estándar ==== ==== Desplegar texto en la salida estándar ====
Línea 149: Línea 153:
   * El número de argumentos se recibe en argc.   * El número de argumentos se recibe en argc.
   * argv[0] siempre corresponde al nombre del ejecutable.   * argv[0] siempre corresponde al nombre del ejecutable.
- 
-=== Ejercicio 1 === 
- 
-Resuelva la pregunta 1 del [[http://users.dcc.uchile.cl/~lmateu/CC3301/controles/c1-141.pdf|control 1 del semestre Otoño de 2014]].  Pruebe su solución con el archivo [[http://users.dcc.uchile.cl/~lmateu/CC3301/download/subst.zip|subst.zip]].  Implemente su solución en el archivo substituir.c.  Compílelo con make y ejecútelo.  El programa le dirá si su solución satisface todos los tests del enunciado. 
  
 === Ejercicio 2 === === Ejercicio 2 ===
Línea 179: Línea 179:
 **Observación**: ''gets'' no recibe como parámetro el tamaño del arreglo de caracteres en donde se deja el resultado **Observación**: ''gets'' no recibe como parámetro el tamaño del arreglo de caracteres en donde se deja el resultado
 y por lo tanto no se debe usar para leer datos de la red o de un archivo de origen desconocido porque puede y por lo tanto no se debe usar para leer datos de la red o de un archivo de origen desconocido porque puede
-ser blanco de ataques de gusanos o virus.  En su lugar use ''fgets''.+ser blanco de ataques de gusanos o virus.  Consulte en la web por //buffer overflow attack//.  En su lugar use ''fgets''.
  
-=== Ejercicio ===+=== Ejercicio ===
  
 El siguiente programa despliega la línea más larga de la entrada estándar: El siguiente programa despliega la línea más larga de la entrada estándar:
Línea 194: Línea 194:
   int largo= 0;   int largo= 0;
  
-  while (gets(lin)!=NULL) {+  /* nunca while (gets(lin)!=NULL) pues sería una brecha de seguridad */ 
 +  while (fgets(lin, N, stdin)!=NULL) {
     if (strlen(lin)>largo) {     if (strlen(lin)>largo) {
       strcpy(larga, lin);       strcpy(larga, lin);
strings.1408558602.txt.gz · Última modificación: 2014/08/20 18:16 por lmateu