write_dev_mem.c

来自「fsmlabs的real time linux的内核」· C语言 代码 · 共 56 行

C
56
字号
/* * Written by Der Herr Hofrat, der.herr@hofr.at * (C) 2002 FSMLabs * License: GPL Version 2 *//* *  Example of write access to shared memory from user-space */#include <stdlib.h>#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <sys/mman.h>#include "hello.h"struct shared_mem_struct* shared_mem;int memfd;int main(){	char input[40];	char stop=0;	memfd = open("/dev/mem", O_RDWR);	if (memfd){		shared_mem = (struct shared_mem_struct*) mmap(0,	  		sizeof(struct shared_mem_struct),	  		PROT_READ | PROT_WRITE, 			MAP_FILE | MAP_SHARED, 			memfd, 			MEMORY_OFFSET);		if(shared_mem != NULL){			printf("enter integer value to put in sahred memory - <quit> to exit\n");			do{				scanf("%s", input);				shared_mem->some_int = atoi(input);				shared_mem->ready = 1;			}while (strcmp("quit",input));		}		else{			printf("Failed to map memory\n");			close (memfd);			exit(-1);		}	}	else{		printf("Failed to open memory device file\n");		exit(-1);	}	close(memfd);	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?