����Linux�Ż�
Linux����

linux cʹ��system����shell�ű�

����ʱ��:2017-09-08 10:04:33��Դ:blog.csdn.net/peng314899581����:linux_c_coding_man
system��ԭ����ʵ���ǵ���fork�����ӽ���ȥִ��shell���Ȼ�󷵻����һ��shell�����״ֵ̬��linux��man system���Կ�������ֵ˵����
 
1.�������ֵ����-1����system����ִ��ʧ�ܣ�׼ȷ��˵��fork�����ӽ���ʧ�ܡ�
2.shellִ�����һ������״ֵ̬���ڷ���ֵ�ĵ�8λ��ʹ��WEXITSTATUS����Ի��״ֵ̬��
3.ʹ��WIFEXITED��ȡ����ֵ�ж��Ƿ�ִ�гɹ������������ͳɹ���
 
���ϣ����Կ���������������Ҫ�ж�system����ֵ������-1��ôfork�ɹ��ˣ�Ȼ���ж�WIFEXITEDΪ����ô����shell�ɹ�������ж�WEXITSTATUS���shellִ��״ֵ̬�Ƿ�Ϊ0���dzɹ���
 
int sh_shell(const char *command)
{
int ret = system(command);
if (-1 == ret)
{
printf("sh_shell fork fail");
return -1;
}
else  
{  
printf("sh_shell exit ret = 0x%x", ret);
if (WIFEXITED(ret))  
{
if (0 == WEXITSTATUS(ret))  
{  
printf("sh_shell success");  
return 0;
}  
else  
{
printf("sh_shell fail, shell status: %d", WEXITSTATUS(ret));
return -1;
}  
}  
else  
{  
printf("sh_shell exit status = %d", WEXITSTATUS(ret));  
return -1;
}  
}
 
�ڽű������뷵���Զ���ֵ��Ҳ�ǿ���ͨ��return����exit���ظ����򣬳���ͨ��system����ֵ��á�
 
�������ø��µ�ַ��//m.ajphoenix.com/linux/32546.html