popen的使用

Posted alen_xie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了popen的使用相关的知识,希望对你有一定的参考价值。

今天看到一段写的不错的代码,整理了一下,提供学习一下:


int MatchingString(char *acStr, char *acDes, int iDesLeng)

    FILE *stream = popen(acStr, "r");
    if (NULL == stream)
    
        printf("failed to popen ifconfig!!\\n");
        return 0;
    
    memset( acDes, '\\0', iDesLeng);
    fread( acDes, sizeof(char), iDesLeng, stream);
    pclose(stream);
    return 1;

MatchingString("ifconfig | grep HWaddr", buf, sizeof(buf));
char local_mac[1024];
memset( local_mac, '\\0', 1024 );
char *pMacAddr = strstr(buf, "HWaddr");

if(pMacAddr==NULL)

	printf("HWaddr is empty , please check your system's language !\\n");
	return 0;



sscanf(pMacAddr+6, "%s", local_mac);


 
        MatchingString("dmidecode | grep UUID", buf, sizeof(buf));
        char local_uuid[1024];
        memset( local_uuid, '\\0', 1024 );
        sscanf(buf, "%*[^ ]%s", local_uuid);


以上是关于popen的使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用子进程 Popen.communicate() 方法?

python os.system、os.popen、subprocess.Popen的区别

如何使用popen?

使用 subprocess.Popen 启动 pyuic5

使用 subprocess.Popen 隐藏控制台

如何从 subprocess.Popen 使用 STDIN [重复]