/*
* File: main.c
* Author: root
*
* Created on 2013年10月30日, 下午10:24
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
/*
*
*/
int main(int argc, char** argv) {
//获取程序目录
char dirPath[128];
getcwd(dirPath,128);
printf("%s\n",dirPath);
//获取程序路径
char pathbuf[128];
readlink("/proc/self/exe",pathbuf,128);
printf("%s\n",pathbuf);
int fd;
char* buf;
int i;
//取得文件状态)相关函数 fstat,lstat,chmod,chown,readlink,utime
struct stat statbuf;
if(stat("test.txt",&statbuf)==-1)
{
//文件不存在
perror("fail to get stat");
exit(1);
}
fd=open("test.txt",O_RDONLY);
if(fd==-1)
{
perror("fail to open");
exit(1);
}
//建立内存映射,)用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写。
buf=(char*)mmap(NULL,statbuf.st_size,PROT_READ,MAP_PRIVATE,fd,0);
if(buf==MAP_FAILED)
{
perror("fail to mmap");
exit(1);
}
i=0;
while(i<statbuf.st_size)
{
printf("%c",buf[i]);
i++;
}
printf("\n");
//解除内存映射
if(munmap(buf,statbuf.st_size)==-1)
{
perror("fail to munmap");
exit(1);
}
close(fd);
printf("end!\n");
return (EXIT_SUCCESS);
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务