не кидайте в меня табуретки,но этот код работает на виртуальной машине.А вот с реальной печалька выходит.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char *argv[])
{
char buf[400];
FILE *cmdp,*cmdp1;
int p,pl,flag=0;
char res[256];
if(argc!=2)
{
printf("USAGE: a.out<username>\n");
exit(0);
}
strcpy(buf,"ps -u ");
strcat(buf,argv[1]);
strcat(buf," -ae o pid,stat | grep T ");
cmdp=popen(buf,"r"); /*выводим список приостановленных процессов*/
printf("%s",buf);
if(!cmdp)
{
printf("pipelined error!\n");
exit(0);
}
while(fgets(res,sizeof(res),cmdp))
{
flag=1;
p=strspn(res,"\t\n");
pl=strcspn((res+p),"\t\n");
res[pl+p]=0;
strcpy(buf,"kill -9");
strcat(buf,res+p);
printf("\n make ---- %s \n",buf);
// system(buf);
cmdp1=popen(buf,"w");/*убиваем приостановленные процессы*/
}
if(flag==0){printf("No execute command\n");}
pclose(cmdp);
pclose(cmdp1);
return(0);