1

请在下面找到我得到的代码和输出。

我的 C 代码在c:/turboc3/bin目录中,我的输出macid.txtc:/turboc3/disk.

这是我正在编译的代码

#include <stdio.h>
#include <conio.h>
#include <string.h>

int main ()
{
    //char mac[200];
    FILE *fp;
    clrscr();
    // fp=fopen("c:\macid.txt","w");
    system("GETMAC>c:/macid.txt");
    fp=fopen("c:/macid.txt","r");
    if(fp!=NULL)
    {
        char line[128];
        while(fgets(line,sizeof line,fp)!=NULL)
        {
            char *nwln=strchr(line,'\n');
            char *ptr;
            if(nwln!=NULL)
                *nwln='\0';
            ptr=strstr(line,"Physical Address");
            if(ptr!=NULL)
            {
                printf("%s\n",ptr);
                break;
            }
        }
    }
    getch();
    return 0;
}

输出是:

Illegal command: GETMAC.

谁能指导我完成这个?

4

2 回答 2

0

非法命令:GETMAC 暗示,它试图运行它但不能。

首先,要解决的问题:记住在字符串中转义 \。不要使用 / 作为路径分隔符。

然后,按大致顺序尝试的事情:尝试使用 GETMAC 的完整路径。尝试不重定向。尝试使用不同的程序。将 GETMAC 包装到 bat 文件中,该文件执行重定向。

于 2012-11-03T06:55:18.553 回答
0

我不确定你的文件 macid.txt 是如何驻留的,但是 - 我认为你可以通过提供函数调用c:/turboc3/disk的完整路径来解决这个问题。system()

像这样:

system("c:/windows/system32/getmac.exe > macid.txt");

于 2012-11-03T06:56:18.917 回答