wum.c

来自「基于WEB的linux系统账号管理系统 为GF做的课程设计」· C语言 代码 · 共 104 行

C
104
字号
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"

#define USERGROUP "ftp"
#define USERDIR   "/var/ftp"

MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;

void exiterr(int exitcode)
{
	fprintf(stderr,"ERROR : %s\n",mysql_error(&mysql));
	exit(exitcode);
}

int main()
{
	if(!(mysql_connect(&mysql,"localhost","wumphp","wum")))
	{
		exiterr(1);
	}
	
	if(mysql_select_db(&mysql,"wum"))
	{
		exiterr(2);
	}
	
	if(mysql_query(&mysql,"select * from usertable"))
	{
		exiterr(3);
	}
	
	if(!(res=mysql_store_result(&mysql)))
	{
		exiterr(4);
	}

	char command[100];
	
	while((row=mysql_fetch_row(res)))
	{
		int id=atoi(row[0]);
		int state=atoi(row[4]);
		
		switch(state)
		{
			case -1:
				
				printf("delete the user : %s\n",row[1]);
				
				sprintf(command,"/usr/sbin/userdel %s",row[1]);
				if(0!=system(command))
				{
					fprintf(stderr,"ERROR:system()\n");
					break;
				}

				sprintf(command,"delete from usertable where id=%d",id);
				if(mysql_query(&mysql,command))
				{
					exiterr(6);
				}
				break;
			case 0:

				printf("add the user : %s \n",row[1]);
				sprintf(command,"/usr/sbin/adduser -g %s -d %s -n %s",USERGROUP,USERDIR,row[1]);
				if(0!=system(command))
				{
					fprintf(stderr,"ERROR:system()\n");
					break;
				}

				sprintf(command,"echo %s | /usr/bin/passwd %s --stdin",row[2],row[1]);

				if(0!=system(command))
				{
					fprintf(stderr,"ERROR:system()\n");
					break;
				}

				sprintf(command,"update usertable set state=1 where id=%d",id);
				if(mysql_query(&mysql,command))
				{
					exiterr(6);
				}
				
				break;
		}
	}

	if(!mysql_eof(res))
		exiterr(5);

	mysql_free_result(res);
	mysql_close(&mysql);

	printf("bye\n");

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?