其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
linux下使用系统调用读取文件中的路径

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

可以配合昨天的模拟shell做到从环境变量中读取可执行文件路径

读取的path.txt内容为
/bin;/home/test;

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <fcntl.h>
#include <time.h>
#define max 8192

int slip(char* str,char* path[10])
{
  char* p;
  int i,j;
  char fullpath[10][max]={};
  p=str;
  i=0;
  while((*p)!=10)
    {
      j=0;
      while((*p)!=';')
 {
   fullpath[i][j++]=*p;
   p++;
 }
      i++;
      p++;
    }
  i=0;
  while(i<10)
    {
      path[i]=fullpath[i];
      i++;
    }
  i=0;
  while(path[i][0]!=0)
    {
      printf("%d is %s\n",i,path[i]);
      i++;
    }
  if(path==NULL)return 0;
  return 1;
}


int main()
{
  int i;
  char fpath;
  char* path[10];
  FILE* stream;
  char tempstr[max]={};
  if((stream=fopen("./path.txt","r"))==NULL)
    {
      printf("can not open file\n");
      exit(1);
    }
  printf("openfile is ok\n");
  while((fpath=fgetc(stream))!=EOF)
    {
      tempstr[0]=fpath;
      if(fgets(&tempstr[1],max,stream)==NULL)exit(1);
    }
  printf("the data is %s\n",tempstr);
  if(slip(tempstr,path)==0)
    {
      printf("the slip fails\n");
      exit(1);
    }
  i=0;
  while(path[i][0]!=0)
    {
      printf("path[%d] is %s\n",i,path[i]);
      i++;
    }
  return 1;
}

 




相关文章

相关软件