在C中使用#define定义路径

时间:2012-03-13 18:54:57

标签: c linux c-preprocessor

我想定义一条这样的路径:

#define PATH /abc/xyz/lmn

此PATH是一个包含文件foo1,foo2,foo3,... foo115的目录。

如何在“打开”调用中使用此#define打开foo1,foo2,... foo115?

我想基本上使用指令执行此操作:

fd = open("/abc/xyz/lmn/foo1", O_RDONLY);

3 个答案:

答案 0 :(得分:9)

#define PATH "/abc/xyz/lmn"

int main (int argc, char **argv)
{
   char file2open[256];
   int i;

   for (i = 1; i <= 115; i++)
   {
      sprintf (file2open, "%sfoo%d", PATH, i);
      fd = open (file2open, O_RDONLY)
      ......
      close (fd);
   }

}

答案 1 :(得分:1)

#define PATH "/some/path/to/foo/files"

for (int i = 0; 1 < SomeNumberOfFiles; i++)
{
    char carray[256] = strcat(PATH, "foo");
    carray = strcat(carray, char(i));
    //Do something with the carray filename
}

我可能在某些C ++中混淆了,抱歉。我尽力把它当作C来保持。

答案 2 :(得分:0)

例如,要打开foo42,您可以执行以下操作:

#define PATH  "/abc/xyz/lmn"
fd = open(PATH "/foo42", O_RDONLY);