在C语言中调用Unix Shell脚本。

最近项目要求需要在C语言中调用shell脚本。

static int execute_script(const char * filename)
{
#if defined(_WIN32) || defined(_WIN64)
	// 
	printf("EXECUTE FILE.... %s\n",filename);
#else
	pid_t pid = 0;
	if(0 == (pid = fork()))
	{
		if(0 == access("/bin/sh", 0))
			execl("/bin/sh", "sh", "-c", filename,NULL);
		if(0 == access("/bin/bash", 0))
			execl("/bin/bash","bash", filename,NULL);

		exit(0);
	}
	return pid;
#endif
}


附上一个换行模式转换函数

int lfmode_tounix(char * str, int len)
{
	char c, * p=str, *p1=str;

	while(len--)
	{
		c= *p++;
		switch(c)
		{
		case '\r':
			if(*p != '\n') // only macintosh mode convert to unix mode.
				*p1++ = '\n';
			// default skip cr.
			break;
		default:
			*p1++ = c;
			break;
		}
	}
	*p1='\0';
	return p1-str;
}


你可能感兴趣的:(在C语言中调用Unix Shell脚本。)