From 3e3db88080c286b3cbaf22cdbca84a4e399f972c Mon Sep 17 00:00:00 2001 From: whaffman Date: Sat, 1 Feb 2025 00:57:35 +0100 Subject: [PATCH] made a clear description of allowed functions in the README.md file --- README.md | 193 +++++++++++++++++++++++++++++++++--------------- inc/minishell.h | 106 +++++++++++++------------- 2 files changed, 188 insertions(+), 111 deletions(-) diff --git a/README.md b/README.md index 2b79a05..6d2763e 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,138 @@ # Minishell - ## Allowed Functions -/* -* This file lists the functions and system calls used in the minishell project. -* - * Functions and system calls: - * `char *readline(const char *prompt);` - Reads a line from the terminal. (Header: ``) - * `void rl_clear_history(void);` - Clears the history of lines read. (Header: ``) - * `int rl_on_new_line(void);` - Prepares for a new line of input. (Header: ``) - * `int rl_replace_line(const char *text, int clear_undo);` - Replaces the current line with a new one. (Header: ``) - * `int rl_redisplay(void);` - Redisplays the current input line. (Header: ``) - * `void add_history(const char *line);` - Adds a line to the history. (Header: ``) - * `int printf(const char *format, ...);` - Prints formatted output to stdout. (Header: ``) - * `void *malloc(size_t size);` - Allocates memory dynamically. (Header: ``) - * `void free(void *ptr);` - Frees dynamically allocated memory. (Header: ``) - * `ssize_t write(int fd, const void *buf, size_t count);` - Writes data to a file descriptor. (Header: ``) - * `int access(const char *pathname, int mode);` - Checks a file's accessibility. (Header: ``) - * `int open(const char *pathname, int flags, ...);` - Opens a file. (Header: ``) - * `ssize_t read(int fd, void *buf, size_t count);` - Reads data from a file descriptor. (Header: ``) - * `int close(int fd);` - Closes a file descriptor. (Header: ``) - * `pid_t fork(void);` - Creates a new process. (Header: ``) - * `pid_t wait(int *wstatus);` - Waits for a child process to change state. (Header: ``) - * `pid_t waitpid(pid_t pid, int *wstatus, int options);` - Waits for a specific child process to change state. (Header: ``) - * `pid_t wait3(int *wstatus, int options, struct rusage *rusage);` - Waits for a child process to change state with resource usage statistics. (Header: ``) - * `pid_t wait4(pid_t pid, int *wstatus, int options, struct rusage *rusage);` - Waits for a specific child process to change state with resource usage statistics. (Header: ``) - * `void (*signal(int signum, void (*handler)(int)))(int);` - Sets a signal handler. (Header: ``) - * `int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);` - Examines and changes a signal action. (Header: ``) - * `int sigemptyset(sigset_t *set);` - Initializes an empty signal set. (Header: ``) - * `int sigaddset(sigset_t *set, int signum);` - Adds a signal to a signal set. (Header: ``) - * `int kill(pid_t pid, int sig);` - Sends a signal to a process. (Header: ``) - * `void exit(int status);` - Terminates the calling process. (Header: ``) - * `char *getcwd(char *buf, size_t size);` - Gets the current working directory. (Header: ``) - * `int chdir(const char *path);` - Changes the current working directory. (Header: ``) - * `int stat(const char *pathname, struct stat *statbuf);` - Gets file status. (Header: ``) - * `int lstat(const char *pathname, struct stat *statbuf);` - Gets file status, not following symbolic links. (Header: ``) - * `int fstat(int fd, struct stat *statbuf);` - Gets file status of an open file descriptor. (Header: ``) - * `int unlink(const char *pathname);` - Deletes a name from the filesystem. (Header: ``) - * `int execve(const char *pathname, char *const argv[], char *const envp[]);` - Executes a program. (Header: ``) - * `int dup(int oldfd);` - Duplicates a file descriptor. (Header: ``) - * `int dup2(int oldfd, int newfd);` - Duplicates a file descriptor to a specific value. (Header: ``) - * `int pipe(int pipefd[2]);` - Creates a pipe. (Header: ``) - * `DIR *opendir(const char *name);` - Opens a directory stream. (Header: ``) - * `struct dirent *readdir(DIR *dirp);` - Reads a directory entry. (Header: ``) - * `int closedir(DIR *dirp);` - Closes a directory stream. (Header: ``) - * `char *strerror(int errnum);` - Returns a string describing an error number. (Header: ``) - * `void perror(const char *s);` - Prints a description of the last error. (Header: ``) - * `int isatty(int fd);` - Tests if a file descriptor refers to a terminal. (Header: ``) - * `char *ttyname(int fd);` - Returns the name of the terminal associated with a file descriptor. (Header: ``) - * `int ttyslot(void);` - Returns the index of the current user's terminal. (Header: ``) - * `int ioctl(int fd, unsigned long request, ...);` - Manipulates the underlying device parameters of special files. (Header: ``) - * `char *getenv(const char *name);` - Gets an environment variable. (Header: ``) - * `int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);` - Sets the parameters associated with the terminal. (Header: ``) - * `int tcgetattr(int fd, struct termios *termios_p);` - Gets the parameters associated with the terminal. (Header: ``) - * `int tgetent(char *bp, const char *name);` - Loads a terminal entry from the termcap database. (Header: ``) - * `int tgetflag(const char *id);` - Gets a boolean entry from the termcap database. (Header: ``) - * `int tgetnum(const char *id);` - Gets a numeric entry from the termcap database. (Header: ``) - * `char *tgetstr(const char *id, char **area);` - Gets a string entry from the termcap database. (Header: ``) - * `char *tgoto(const char *cap, int col, int row);` - Computes a cursor movement string. (Header: ``) - * `int tputs(const char *str, int affcnt, int (*putc)(int));` - Outputs a string with padding. (Header: ``) +### `` +* `open` + * `int open(const char *pathname, int flags, ...);` + * Opens a file specified by pathname. The flags argument determines the file access mode and file status flags. + +### `` +* `opendir` + * `DIR *opendir(const char *name);` + * Opens a directory stream corresponding to the directory name, and returns a pointer to the directory stream. +* `readdir` + * `struct dirent *readdir(DIR *dirp);` + * Reads the next directory entry from the directory stream pointed to by dirp. +* `closedir` + * `int closedir(DIR *dirp);` + * Closes the directory stream associated with dirp. + +### `` +* `malloc` + * `void *malloc(size_t size);` + * Allocates size bytes of memory and returns a pointer to the allocated memory. +* `free` + * `void free(void *ptr);` + * Frees the memory space pointed to by ptr, which must have been returned by a previous call to malloc. + +### `` +* `printf` + * `int printf(const char *format, ...);` + * Sends formatted output to stdout. + +### `` +* `stat` + * `int stat(const char *pathname, struct stat *statbuf);` + * Retrieves information about the file pointed to by pathname and fills in the stat structure. +* `lstat` + * `int lstat(const char *pathname, struct stat *statbuf);` + * Similar to stat, but does not follow symbolic links. +* `fstat` + * `int fstat(int fd, struct stat *statbuf);` + * Retrieves information about the file referred to by the open file descriptor fd. + +### `` +* `wait` + * `pid_t wait(int *wstatus);` + * Suspends execution of the calling process until one of its children terminates. +* `waitpid` + * `pid_t waitpid(pid_t pid, int *wstatus, int options);` + * Suspends execution of the calling process until the child specified by pid changes state. +* `wait3` + * `pid_t wait3(int *wstatus, int options, struct rusage *rusage);` + * Similar to wait, but also returns resource usage information. +* `wait4` + * `pid_t wait4(pid_t pid, int *wstatus, int options, struct rusage *rusage);` + * Similar to waitpid, but also returns resource usage information. + +### `` +* `signal` + * `void (*signal(int signum, void (*handler)(int)))(int);` + * Sets a function to handle signal signum. +* `sigaction` + * `int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);` + * Examines and changes the action associated with a specific signal. +* `sigemptyset` + * `int sigemptyset(sigset_t *set);` + * Initializes the signal set pointed to by set to exclude all signals. +* `sigaddset` + * `int sigaddset(sigset_t *set, int signum);` + * Adds the individual signal specified by signum to the signal set pointed to by set. +* `kill` + * `int kill(pid_t pid, int sig);` + * Sends the signal sig to the process specified by pid. + +### `` +* `write` + * `ssize_t write(int fd, const void *buf, size_t count);` + * Writes up to count bytes from the buffer starting at buf to the file referred to by the file descriptor fd. +* `access` + * `int access(const char *pathname, int mode);` + * Checks the file named by pathname for accessibility according to the bit pattern contained in mode. +* `read` + * `ssize_t read(int fd, void *buf, size_t count);` + * Reads up to count bytes from file descriptor fd into the buffer starting at buf. +* `close` + * `int close(int fd);` + * Closes the file descriptor fd. +* `fork` + * `pid_t fork(void);` + * Creates a new process by duplicating the calling process. + +### `` +* `readline` + * `char *readline(const char *prompt);` + * Reads a line from the terminal with editing capabilities. +* `rl_clear_history` + * `void rl_clear_history(void);` + * Clears the history of lines read by readline. +* `rl_on_new_line` + * `int rl_on_new_line(void);` + * Resets the state to indicate that a new line of input is being read. +* `rl_replace_line` + * `int rl_replace_line(const char *text, int clear_undo);` + * Replaces the contents of the current line with text. +* `rl_redisplay` + * `int rl_redisplay(void);` + * Redisplays the current input line. +* `add_history` + * `void add_history(const char *line);` + * Adds the line to the history list. + +### `` +* `tcsetattr` + * `int tcsetattr(int fd, int optional_actions, const struct termios *termios_p);` + * Sets the parameters associated with the terminal referred to by fd. +* `tcgetattr` + * `int tcgetattr(int fd, struct termios *termios_p);` + * Gets the parameters associated with the terminal referred to by fd. + +### `` +* `tgetent` + * `int tgetent(char *bp, const char *name);` + * Loads the entry for name from the termcap database. +* `tgetflag` + * `int tgetflag(const char *id);` + * Gets the boolean entry for id from the termcap database. +* `tgetnum` + * `int tgetnum(const char *id);` + * Gets the numeric entry for id from the termcap database. +* `tgetstr` + * `char *tgetstr(const char *id, char **area);` + * Gets the string entry for id from the termcap database. +* `tgoto` + * `char *tgoto(const char *cap, int col, int row);` + * Returns a cursor addressing string for the given capability cap. +* `tputs` + * `int tputs(const char *str, int affcnt, int (*putc)(int));` + * Outputs the string str with padding. diff --git a/inc/minishell.h b/inc/minishell.h index c5f4d5d..7c812d8 100644 --- a/inc/minishell.h +++ b/inc/minishell.h @@ -7,141 +7,141 @@ * The following is a list of included headers and the functions or system calls they provide: * * @headerfile - * - printf(const char *format, ...); + * - int printf(const char *format, ...); * - Prints formatted data to stdout. - * - perror(const char *s); + * - void perror(const char *s); * - Prints a descriptive error message to stderr. * * @headerfile - * - malloc(size_t size); + * - void* malloc(size_t size); * - Allocates memory dynamically. - * - free(void *ptr); + * - void free(void *ptr); * - Frees dynamically allocated memory. - * - exit(int status); + * - void exit(int status); * - Terminates the calling process. - * - getenv(const char *name); + * - char* getenv(const char *name); * - Retrieves the value of an environment variable. * * @headerfile - * - write(int fd, const void *buf, size_t count); + * - ssize_t write(int fd, const void *buf, size_t count); * - Writes data to a file descriptor. - * - access(const char *pathname, int mode); + * - int access(const char *pathname, int mode); * - Checks user's permissions for a file. - * - read(int fd, void *buf, size_t count); + * - ssize_t read(int fd, void *buf, size_t count); * - Reads data from a file descriptor. - * - close(int fd); + * - int close(int fd); * - Closes a file descriptor. - * - fork(void); + * - pid_t fork(void); * - Creates a new process. - * - getcwd(char *buf, size_t size); + * - char* getcwd(char *buf, size_t size); * - Gets the current working directory. - * - chdir(const char *path); + * - int chdir(const char *path); * - Changes the current working directory. - * - unlink(const char *pathname); + * - int unlink(const char *pathname); * - Deletes a name from the filesystem. - * - execve(const char *pathname, char *const argv[], char *const envp[]); + * - int execve(const char *pathname, char *const argv[], char *const envp[]); * - Executes a program. - * - dup(int oldfd); + * - int dup(int oldfd); * - Duplicates a file descriptor. - * - dup2(int oldfd, int newfd); + * - int dup2(int oldfd, int newfd); * - Duplicates a file descriptor to a specific descriptor number. - * - pipe(int pipefd[2]); + * - int pipe(int pipefd[2]); * - Creates a pipe. - * - isatty(int fd); + * - int isatty(int fd); * - Checks if a file descriptor refers to a terminal. - * - ttyname(int fd); + * - char* ttyname(int fd); * - Returns the name of the terminal associated with a file descriptor. - * - ttyslot(void); + * - int ttyslot(void); * - Returns the index of the current terminal. * * @headerfile - * - strerror(int errnum); + * - char* strerror(int errnum); * - Returns a string describing the error number. * * @headerfile * - Required for various system calls and data types. * * @headerfile - * - wait(int *wstatus); + * - pid_t wait(int *wstatus); * - Waits for a child process to change state. - * - waitpid(pid_t pid, int *wstatus, int options); + * - pid_t waitpid(pid_t pid, int *wstatus, int options); * - Waits for a specific child process to change state. - * - wait3(int *wstatus, int options, struct rusage *rusage); + * - pid_t wait3(int *wstatus, int options, struct rusage *rusage); * - Waits for a child process to change state with resource usage information. - * - wait4(pid_t pid, int *wstatus, int options, struct rusage *rusage); + * - pid_t wait4(pid_t pid, int *wstatus, int options, struct rusage *rusage); * - Waits for a specific child process to change state with resource usage information. * * @headerfile - * - open(const char *pathname, int flags, ...); + * - int open(const char *pathname, int flags, ...); * - Opens a file. * * @headerfile * - Provides access to the errno variable. * * @headerfile - * - signal(int signum, void (*handler)(int)); + * - void (*signal(int signum, void (*handler)(int)))(int); * - Sets a signal handler. - * - sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); + * - int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); * - Examines and changes a signal action. - * - sigemptyset(sigset_t *set); + * - int sigemptyset(sigset_t *set); * - Initializes a signal set to empty. - * - sigaddset(sigset_t *set, int signum); + * - int sigaddset(sigset_t *set, int signum); * - Adds a signal to a signal set. - * - kill(pid_t pid, int sig); + * - int kill(pid_t pid, int sig); * - Sends a signal to a process. * * @headerfile - * - readline(const char *prompt); + * - char* readline(const char *prompt); * - Reads a line of input from the user. - * - rl_clear_history(void); + * - void rl_clear_history(void); * - Clears the history list. - * - rl_on_new_line(void); + * - void rl_on_new_line(void); * - Informs the readline library that the cursor is on a new line. - * - rl_replace_line(const char *text, int clear_undo); + * - void rl_replace_line(const char *text, int clear_undo); * - Replaces the contents of the current line. - * - rl_redisplay(void); + * - void rl_redisplay(void); * - Redisplays the current line. - * - add_history(const char *line); + * - void add_history(const char *line); * - Adds a line to the history list. * * @headerfile - * - opendir(const char *name); + * - DIR* opendir(const char *name); * - Opens a directory stream. - * - readdir(DIR *dirp); + * - struct dirent* readdir(DIR *dirp); * - Reads a directory entry. - * - closedir(DIR *dirp); + * - int closedir(DIR *dirp); * - Closes a directory stream. * * @headerfile - * - stat(const char *pathname, struct stat *statbuf); + * - int stat(const char *pathname, struct stat *statbuf); * - Gets file status. - * - lstat(const char *pathname, struct stat *statbuf); + * - int lstat(const char *pathname, struct stat *statbuf); * - Gets file status, not following symbolic links. - * - fstat(int fd, struct stat *statbuf); + * - int fstat(int fd, struct stat *statbuf); * - Gets file status for an open file descriptor. * * @headerfile - * - ioctl(int fd, unsigned long request, ...); + * - int ioctl(int fd, unsigned long request, ...); * - Manipulates the underlying device parameters of special files. * * @headerfile - * - tcsetattr(int fd, int optional_actions, const struct termios *termios_p); + * - int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); * - Sets the parameters associated with the terminal. - * - tcgetattr(int fd, struct termios *termios_p); + * - int tcgetattr(int fd, struct termios *termios_p); * - Gets the parameters associated with the terminal. * * @headerfile - * - tgetent(char *bp, const char *name); + * - int tgetent(char *bp, const char *name); * - Loads the terminal entry for a given terminal name. - * - tgetflag(const char *id); + * - int tgetflag(const char *id); * - Gets the boolean value of a terminal capability. - * - tgetnum(const char *id); + * - int tgetnum(const char *id); * - Gets the numeric value of a terminal capability. - * - tgetstr(const char *id, char **area); + * - char* tgetstr(const char *id, char **area); * - Gets the string value of a terminal capability. - * - tgoto(const char *cap, int col, int row); + * - char* tgoto(const char *cap, int col, int row); * - Computes a cursor movement string. - * - tputs(const char *str, int affcnt, int (*putc)(int)); + * - int tputs(const char *str, int affcnt, int (*putc)(int)); * - Outputs a string with padding. */ #ifndef MINISHELL_H