Volver a la página principal
sábado 21 septiembre 2024
4

Qué es unsafe en Rust

El bloque unsafe en Rust permite realizar operaciones que no están garantizadas por el sistema de seguridad de tipos del compilador. Es una herramienta poderosa que se debe usar con precaución, ya que habilita acciones como acceder a punteros sin verificar, invocar funciones externas o alterar variables mutables globales.

Usos de unsafe en Rust

Dentro de un bloque unsafe, se pueden ejecutar cinco tipos principales de operaciones no seguras:

  • Acceso a punteros sin comprobación: Se permite la manipulación de punteros crudos, sin las garantías de seguridad usuales.
  • Llamadas a funciones externas (FFI): Invocar funciones definidas fuera de Rust, como aquellas en bibliotecas escritas en C.
  • Modificación de variables globales mutables: Manipular variables globales que pueden ser accedidas de forma concurrente.
  • Implementación de rasgos unsafe: Implementar ciertos rasgos que el compilador considera inseguros por su naturaleza.
  • Desreferenciar punteros no seguros: Manipular punteros que podrían apuntar a áreas de memoria peligrosas o inválidas.

Algunos ejemplos

let x: i32 = 42;
let r: *const i32 = &x;  // Puntero crudo

unsafe {
    println!("El valor de x es: {}", *r);  // Acceso inseguro
}

Este código accede a un puntero crudo que, fuera del bloque unsafe, no sería permitido por el compilador.

Para más información oficial, visita la documentación de Rust.

Etiquetas:
rust
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer