L'utilisation d'informations dans le mmap de base des composants internes de l'ordinateur

                                           La fonction mmap est très importante, alsa pilote uac uvc audio et vidéo et toute cette application devient un processus, cette fonction joue également un rôle clé.         

root @ instance-tau7o2q5: ~ / app_modules # strace ./a. dehors . 
execve ( " ./a.out " , [ " ./a.out " , " . " ], 0x7ffc78e587b8  / * 27 vars * / ) = 0 
brk (NULL)                                = 0x559be8915000 
accès ( " /etc/ld.so. nohwcap " , F_OK) = - 1 ENOENT (aucun fichier ou répertoire de ce type) 
accès ( " /etc/ld.so.preload " , R_OK) = - 1 ENOENT (aucun fichier ou répertoire de ce type)
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 
accès ( " /etc/ld.so.nohwcap " , F_OK) = - 1 ENOENT (Aucun fichier ou répertoire de ce type) 
openat (AT_FDCWD, " / lib / x86_64-linux-gnu / libc.so.6 " , O_RDONLY | O_CLOEXEC) = 3
lire ( 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 ) =? 
+++ sorti avec 0 +++

                           A effectué une opération de modification de fichier

#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 = ouvert (fname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
    if (fd == - 1 ) 
    { 
        perror ( " open " );
        retour  1 ; 
    } 
    if (fstat (fd, & sb) == - 1 ) 
    { 
        perror ( " fstat ");
        retour  1 ; 
    } 
 
    buf = mmap ( 0 , sb.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0 );
    if (buf == MAP_FAILED) 
    { 
        perror ( " mmap " );
        retour  1 ; 
    } 
    
    Card   = ( struct Card_Messge * ) buf; 
    
    if (close (fd) == - 1 ) 
    { 
        perror ( " close " );
        retour  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 ' ; 
    
    
    Carte -> numéro1 = ' a ' ; 
    Carte-> nombre2 = ' b ' ; 
    Carte -> numéro3 = ' c ' ; 
    Carte -> numéro4 = ' d ' ; 
    
 
    if (munmap (buf, sb.st_size) == - 1 ) 
    { 
        perror ( " munmap " );
        retour  1 ; 
    } 
    return  0 ;


                                          

Je suppose que tu aimes

Origine www.cnblogs.com/nowroot/p/12689045.html
conseillé
Classement