Jump to content
xisto Community
HannahI

My Unix Project "unix" A Story about a Unix Project

Recommended Posts

Hey, Guys.Moderators, If there is a better place for this, please move it! :DLet's begin.I made a project that ran on Unix. bUt that project was not any old project. It was special! It was special becuase it was Unix, except it was running on Unix. If you would like to take it for a test run your self, just leave me a comment to post it! Plus, it looks like Unix.Bye

Share this post


Link to post
Share on other sites

Here is the code.Start.c

 #include <string.h> #include <stdio.h> #include <stdlib.h> #include "start.h" #define TRUE 1 #define FALSE 0int login() {	printf("Welcome to the Computer!\n");	printf("Type your username:\n");	printf("new-host-2:~ user$ ");		char username[256];	scanf("%s", username);	if(strcmp(username, "Hannah") != 0) {		printf("\n Wrong! Type again:\n");		printf("new-host-2:~ user$ ");		scanf("%s", username);				if(strcmp(username, "Hannah") != 0) {			printf("\n Hint: You; Type:\n");			printf("new-host-2:~ user$ ");			scanf("%s", username);					if(strcmp(username, "Hannah") != 0) {				exit(0);			}		}	}			printf("\n Great! Password, Type ~ at the end:\n");	printf("new-host-2:~ user$ ");		char password[256];	scanf("%s", password);	if(strcmp(password, "password") != 0) {		printf("Type Again:\n");		printf("new-host-2:~ user$ ");		scanf("%s", password);			if(strcmp(password, "password") != 0) {			printf("Hint: Girl; Type:\n");			printf("new-host-2:~ user$ ");			scanf("%s", password);					if(strcmp(password, "password") != 0) {				exit(0);			}		}	}		return 0;	}		char usernames[16][256];		char passwords[16][256];void setuser(char* username, char* password, int userID){	int x;	int bFound = FALSE;		if(userID>15) return;	if(userID<0){			for(x=0;x<16;x++){			if(usernames[x]==0){				userID = x; bFound = TRUE; break;			}		}								if(bFound == FALSE) {			printf("Your account could not be created. Try again later.");			return;		}	}		strcpy(usernames[userID], username);	strcpy(passwords[userID], password);	}	int loadUserDatabase()	{		FILE *fp;		if(!(fp=fopen("users.dat","rb"))){			memset(usernames, 0, sizeof(usernames));			memset(passwords, 0, sizeof(passwords));					} else {			fread( usernames, sizeof(usernames), 1, fp);			fread( passwords, sizeof(passwords), 1, fp);		}		return 0;	}		int saveUserDatabase()	{		FILE* fp;		if(!(fp=fopen("users.dat","wb"))){			fwrite(usernames, sizeof(usernames), 1, fp);			fwrite(passwords, sizeof(passwords), 1, fp);		}		return 0;	}

Start.h

int login();void setuser(char* username, char* password, int userID);int saveUserDatabase();int loadUserDatabase();

Main.c

#include <stdio.h>#include <string.h>#include "start.h"void write() {	for(;{		printf("Would you like to type; 4 lines only? Type Yes or No:\n");		char line1[256];		char line2[256];		char line3[256];		char line4[256];		char response[256];				printf("new-host-2:~ user$ ");		scanf("%s", response);		if(strcmp(response, "Yes") == 0) {			scanf("%s", line1);			printf("\n");			scanf("%s", line2);			printf("\n");			scanf("%s", line3);			printf("\n");			scanf("%s", line4);		} else if(strcmp(response, "No") == 0) {			break;		} else {			printf("-bash unknown command\n");		}	} 	}void ask() {	for(; {	char response[256];	printf("Would you like to do any of the following\n");	printf("Writing, Logout\n ");	printf("new-host-2:~ user$ ");	scanf("%s",response);	if(strcmp(response, "Writing") == 0) {		write();	} else if(strcmp(response, "Logout") == 0) {		break;		} else {			printf("-bash unkwown command\n");		}	}}int main (int argc, const char * argv[]) {	loadUserDatabase();	setuser("Derek", "Hannah", 1);	login();	ask();	saveUserDatabase();	return 1;} 

Share this post


Link to post
Share on other sites

Hm!I would say that this is not Unix.This is close to emulating "getty", the process in charge of connecting the users.getty is not Unix.It's in charge of opening the communication channel (usually a tty), ask for the username and password, verify in /etc/passwords, and then fork a shell.And even this shell is not Unix, the shell is a command line interpreter. Then comes the master philosophical problem : what is Unix ?I would say that Unix is "init", the father of all the processes in a running Unix machine.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.