El uso de información en el mmap central de los componentes internos de la computadora

                                           La función mmap es muy importante, alsa conduce audio y video uac uvc y toda esta aplicación se convierte en un proceso, esta función también juega un papel clave.         

root @ instance-tau7o2q5: ~ / app_modules # strace ./a. a cabo . 
execve ( " ./a.out " , [ " ./a.out " , " . " ], 0x7ffc78e587b8  / * 27 vars * / ) = 0 
brk (NULL)                                = 0x559be8915000 
acceso ( " /etc/ld.so. nohwcap " , F_OK) = - 1 ENOENT (No existe tal archivo o directorio) 
acceso ( " /etc/ld.so.preload " , R_OK) = - 1  ENOENT (No existe tal archivo o directorio)
openat (AT_FDCWD, " /etc/ld.so.cache " , O_RDONLY | O_CLOEXEC) = 3 
fstat ( 3 , {st_mode = S_IFREG | 0644 , st_size = 46616 , ...}) = 0 
mmap (NULL, 46616 , PROT_READ , MAP_PRIVATE, 3 , 0 ) = 0x7f4f4d50d000 
close ( 3 ) = 0 
access ( " /etc/ld.so.nohwcap " , F_OK) = - 1 ENOENT (No existe tal archivo o directorio) 
openat (AT_FDCWD, " / lib / x86_64 -linux-gnu / libc.so.6 " , O_RDONLY | O_CLOEXEC) = 3
leer ( 3 , " \ 177ELF \ 2 \ 1 \ 1 \ 3 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 3 \ 0> \ 0 \ 1 \ 0 \ 0 \ 0 \ 260 \ 34 \ 2 \ 0 \ 0 \ 0 \ 0 \ 0 " ..., 832 ) = 832 
fstat ( 3 , {st_mode = S_IFREG | 0755 , st_size = 2030544 , ...}) = 0 
mmap (NULL, 8192 , PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, - 1 , 0 ) = 0x7f4f4d50b000 
mmap (NULL, 4.131.552 , PROT_READ | PROT_EXEC, MAP_PRIVATE | MAP_DENYWRITE, 3 , 0 ) = 0x7f4f4cf01000 
mprotect ( 0x7f4f4d0e8000 , 2097152, PROT_NONE) = 0 
mmap ( 0x7f4f4d2e8000 , 24576 , PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED | MAP_DENYWRITE, 3 , 0x1e7000 ) = 0x7f4f4d2e8000 
mmap ( 0x7f4f4d2ee000 , 15072 , PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS, - 1 , 0 ) = 0x7f4f4d2ee000 
close ( 3 ) = 0 
arch_prctl (ARCH_SET_FS, 0x7f4f4d50c4c0 ) = 0 
mprotect ( 0x7f4f4d2e8000 , 16384 , PROT_READ) = 0 
mprotect ( 0x559be7d71000 , 4096 , PROT_READ) = 0 
mprotect ( 0x7f4f4d519000 , 4096 , PROT_READ) = 0 
munmap ( 0x7f4f4d50d000 , 46616 ) = 0 
openat (AT_FDCWD, " ./file_mmap " , O_RDWR | O_CREAT, 0600 ) = 3 
fstat ( 3 , {st_mode = S_IFREG | 0644 , st_size = 294 , ...}) = 0 
mmap (NULL, 294 , PROT_READ | PROT_WRITE, MAP_SHARED, 3 , 0 ) =0x7f4f4d518000 
close ( 3 ) = 0 
munmap ( 0x7f4f4d518000 , 294 ) = 0 
exit_group ( 0 ) =? 
+++ salió con 0 +++

                           Hizo una operación de modificación de archivo

#include <stdio.h> 
#include < string .h> 
#include <stdlib.h> 
#include <ctype.h> 
#include <sys / types.h> 
#include <sys / stat.h> 
#include <fcntl .h> 
#include <unistd.h> 
#include <sys / mman.h> struct Card_Messge 
{ char number1;
   char number2;
   char number3;
   char number4;
   char number5; 
}; struct Card_Messge * Card;
int main ( int argc,



   


char * argv []) 
{ 
    int fd;
    char * buf; 
    off_t len; 
    struct stat sb;
    char * fname = " ./file_mmap " ; 
 
    fd = abierto (fname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
    if (fd == - 1 ) 
    { 
        perror ( " abierto " );
        retorno  1 ; 
    } 
    if (fstat (fd, & sb) == - 1 ) 
    { 
        perror ( " fstat ");
        retorno  1 ; 
    } 
 
    buf = mmap ( 0 , sb.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 );
    if (buf == MAP_FAILED) 
    { 
        perror ( " mmap " );
        retorno  1 ; 
    } 
    
    Tarjeta   = ( struct Card_Messge * ) buf; 
    
    if (close (fd) == - 1 ) 
    { 
        perror ( " close " );
        retorno  1 ; 
    }
 
    for (len = 0 ; len <sb.st_size; ++ len) 
    { 
        buf [len] = toupper (buf [len]);
        / * putchar (buf [len]); * / 
    } 
    
    buf [ 0 ] = ' 1 ' ; 
    buf [ 1 ] = ' 2 ' ; 
    buf [ 2 ] = ' 3 ' ; 
    buf [ 3 ] = ' 4 ' ; 
    
    
    Tarjeta -> número1 = ' a ' ; 
    Tarjeta-> número2 = ' b ' ; 
    Tarjeta -> número3 = ' c ' ; 
    Tarjeta -> número4 = ' d ' ; 
    
 
    if (munmap (buf, sb.st_size) == - 1 ) 
    { 
        perror ( " munmap " );
        retorno  1 ; 
    } 
    devuelve  0 ;


                                          

Supongo que te gusta

Origin www.cnblogs.com/nowroot/p/12689045.html
Recomendado
Clasificación