1. shmtest_wirte.lua
Ffi = require 'ffi'
Ffi. cdef [[
Int shmget (int key, int size, int flag );
Void * shmat (int shmid, const void * ptr, int flag );
Void perror (const char * msg );
Char * strcpy (char * dest, const char * src );
]
Local IPC_CREAT = 01000
Local shmid = ffi. C. shmget (798,30000000, IPC_CREAT)
Print (shmid)
Ffi. C. perror ("creat shm ")
Local ptr = ffi. C. shmat (shmid, nil, 0)
Local str = ffi. cast ("char *", ptr)
Ffi. C. strcpy (str, "Hello World ")
Ffi. C. perror ("str cpy ")
2. shmtest_read.luaFfi = require 'ffi' ffi. cdef [[int shmget (int key, int size, int flag); void * shmat (int shmid, const void * ptr, int flag ); void perror (const char * msg); char * strcpy (char * dest, const char * src);] local shmid = ffi. c. shmget (798,30000000, 0) if shmid =-1 then ffi. c. perror ('') OS. exit (0) endprint (shmid) ffi. c. perror ("get shm by key") local ptr = ffi. c. shmat (shmid, nil, 0) local str = ffi. cast ('Char * ', ptr) print (ffi. string (str, 30 ))
3. ManagementIpcs command to view ipcrm to delete shared memory