#include <stdio.h>
#include <stdlib.h> //For exit()
#include <sys/stat.h> //I/O
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
//Function Protos
static void usage(void);
void Output(int, char);
int CreateFile(char *MyFile);
int CreateFolder(char *MyFolder);
int main(int argc, char *argv[]){
int file;
char character;
int mFlag = 0;
int fFlag = 0;
int c;
//Check if arguments are correct
if(argc == 0){
usage();
}
if (argc !=2){
usage();
}
//Check if file exists OR if its a dir
if(access(argv[1], F_OK) != -1){
//Check if its a dir
struct stat s;
int err = stat(argv[1], &s);
if ( S_ISDIR(s.st_mode)){
printf("%s: Is a directory\n", argv
[1]); exit(0); //Exit, we can't do anything witha dir }
//Open file
file = open(argv[1], O_RDONLY);
if (file == -1)
}
else{
}
//Command line arg
while((c = getopt (argc, argv, "mf")) != -1){
switch(c)
{
case 'm':
mFlag = 1;
if(CreateFile(argv[2]) != 0){
}
break;
case 'f':
fFlag = 1;
CreateFolder(argv[2]);
break;
case '?':
fprintf (stderr
, "Unknown option '-%c'\n", optopt
); else
fprintf(stderr
, "Unknown option character '\\x%x'\n", optopt
); return 1;
break;
default:
}
}
//Output file
Output(file, character);
//Close
if (close(file) != 0){
}
return 0;
}
static void usage(){
printf ("Usage: op [File] [Option]\n"); printf ("-m Create the file\n"); printf ("-f Create the folder\n"); }
void Output(int MyFile, char MyChar){
while (read (MyFile, &MyChar, 1) == 1)
}
int CreateFile(char *MyFile){
if(open(MyFile, O_RDWR | O_CREAT, S_IRUSR | S_IRGRP | S_IROTH) == -1){
printf("Error: Could not creat file\n"); }
return 0;
}
int CreateFolder(char *MyFolder){
//Code
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4gLy9Gb3IgZXhpdCgpCiNpbmNsdWRlIDxzeXMvc3RhdC5oPiAvL0kvTwojaW5jbHVkZSA8Y3R5cGUuaD4KI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KCi8vRnVuY3Rpb24gUHJvdG9zCnN0YXRpYyB2b2lkIHVzYWdlKHZvaWQpOwp2b2lkIE91dHB1dChpbnQsIGNoYXIpOwppbnQgQ3JlYXRlRmlsZShjaGFyICpNeUZpbGUpOwppbnQgQ3JlYXRlRm9sZGVyKGNoYXIgKk15Rm9sZGVyKTsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pewoJICAgIAlpbnQgZmlsZTsKCSAgICAJY2hhciBjaGFyYWN0ZXI7CgkJaW50IG1GbGFnID0gMDsKCQlpbnQgZkZsYWcgPSAwOwoJCWludCBjOwoKCSAgICAJLy9DaGVjayBpZiBhcmd1bWVudHMgYXJlIGNvcnJlY3QKCSAgICAJaWYoYXJnYyA9PSAwKXsKCSAgICAgICAgICAgIHVzYWdlKCk7CgkgICAgICAgICAgICBleGl0KDApOwoJICAgIAl9CgoJICAgIAlpZiAoYXJnYyAhPTIpewoJICAgICAgICAgICAgdXNhZ2UoKTsKCSAgICAgICAgICAgIGV4aXQoMCk7CgkgICAgCX0KCgkJLy9DaGVjayBpZiBmaWxlIGV4aXN0cyBPUiBpZiBpdHMgYSBkaXIJCQoJCWlmKGFjY2Vzcyhhcmd2WzFdLCBGX09LKSAhPSAtMSl7CgkgICAgCQkvL0NoZWNrIGlmIGl0cyBhIGRpcgoJCQlzdHJ1Y3Qgc3RhdCBzOwoJCQlpbnQgZXJyID0gc3RhdChhcmd2WzFdLCAmcyk7CgkJCWlmICggU19JU0RJUihzLnN0X21vZGUpKXsKCQkJCXByaW50ZigiJXM6IElzIGEgZGlyZWN0b3J5XG4iLCBhcmd2WzFdKTsKCQkJCWV4aXQoMCk7IC8vRXhpdCwgd2UgY2FuJ3QgZG8gYW55dGhpbmcgd2l0aGEgIGRpcgoJCQl9CgoJCQkvL09wZW4gZmlsZQoJICAgIAkJZmlsZSA9IG9wZW4oYXJndlsxXSwgT19SRE9OTFkpOwoJICAgIAkJaWYgKGZpbGUgPT0gLTEpCgkJCQlwZXJyb3IoIk9wZW4oKSBFcnJvciIpOwoJICAgICAgICB9CgkJZWxzZXsKCQkJcGVycm9yKCJFcnJvciIpOwoJCQlleGl0KC0xKTsKCQl9CgoJCQoJCS8vQ29tbWFuZCBsaW5lIGFyZwoJCXdoaWxlKChjID0gZ2V0b3B0IChhcmdjLCBhcmd2LCAibWYiKSkgIT0gLTEpewogICAgCQkJc3dpdGNoKGMpCiAgICAJCQl7CiAgICAgICAgCQljYXNlICdtJzoKICAgICAgICAgICAgCQkJbUZsYWcgPSAxOwogICAgICAgICAgICAJCQlwcmludGYoIiFNXG4iKTsKICAgICAgICAgICAgCQkJaWYoQ3JlYXRlRmlsZShhcmd2WzJdKSAhPSAwKXsKCQkJCQlwZXJyb3IoIkVycm9yIik7CgkJCQkJZXhpdCgtMSk7CgkJCQl9CiAgICAgICAgICAgIAkJCWV4aXQoMCk7CiAgICAgICAgICAgIAkJCWJyZWFrOwogICAgICAgIAkJCgkJCWNhc2UgJ2YnOgogICAgICAgICAgICAJCQlwcmludGYoIiFGXG4iKTsKICAgICAgICAgICAJIAkJZkZsYWcgPSAxOwogICAgICAgICAgICAJCQlDcmVhdGVGb2xkZXIoYXJndlsyXSk7CiAgICAgICAgICAgIAkJCWV4aXQoMCk7CiAgICAgICAgICAgIAkJCWJyZWFrOwogICAgICAgIAkJCgkJCWNhc2UgJz8nOgogICAgICAgICAgICAJCQlpZiAoaXNwcmludCAob3B0b3B0KSkKICAgICAgICAgICAgICAgIAkJCWZwcmludGYgKHN0ZGVyciwgIlVua25vd24gb3B0aW9uICctJWMnXG4iLCBvcHRvcHQpOwogICAgICAgICAgICAJCQllbHNlCiAgICAgICAgICAgICAgICAJCQlmcHJpbnRmKHN0ZGVyciwgIlVua25vd24gb3B0aW9uIGNoYXJhY3RlciAnXFx4JXgnXG4iLCBvcHRvcHQpOwogICAgICAgICAgICAJCQlyZXR1cm4gMTsKICAgICAgICAgICAgCQkJYnJlYWs7CiAgICAgICAgCQkKCQkJZGVmYXVsdDoKICAgICAgICAgICAgCQkJYWJvcnQgKCk7CiAgICB9Cn0KCQkKCQkJCQoJICAgCSAvL091dHB1dCBmaWxlCgkgICAgCU91dHB1dChmaWxlLCBjaGFyYWN0ZXIpOwoKCSAgICAJLy9DbG9zZQoJICAgIAlpZiAoY2xvc2UoZmlsZSkgIT0gMCl7CgkJCXBlcnJvcigiQ2xvc2UoKSBFcnJvciIpOwoJCQlleGl0KC0xKTsKCQl9CgkJCgkJcmV0dXJuIDA7Cn0KCnN0YXRpYyB2b2lkIHVzYWdlKCl7CglwcmludGYgKCJVc2FnZTogb3AgW0ZpbGVdIFtPcHRpb25dXG4iKTsKCXByaW50ZiAoIi1tCUNyZWF0ZSB0aGUgZmlsZVxuIik7CglwcmludGYgKCItZiAJQ3JlYXRlIHRoZSBmb2xkZXJcbiIpOwp9CnZvaWQgT3V0cHV0KGludCBNeUZpbGUsIGNoYXIgTXlDaGFyKXsKCXdoaWxlIChyZWFkIChNeUZpbGUsICZNeUNoYXIsIDEpID09IDEpCgkJcHJpbnRmKCIlYyIsIE15Q2hhcik7Cn0KaW50IENyZWF0ZUZpbGUoY2hhciAqTXlGaWxlKXsKICAgIHByaW50ZigiQ3JlYXRpbmcgRmlsZSIpOwogICAgaWYob3BlbihNeUZpbGUsIE9fUkRXUiB8IE9fQ1JFQVQsIFNfSVJVU1IgfCBTX0lSR1JQIHwgU19JUk9USCkgPT0gLTEpewogICAgICAgIHByaW50ZigiRXJyb3I6IENvdWxkIG5vdCBjcmVhdCBmaWxlXG4iKTsKICAgICAgICBleGl0KC0xKTsKICAgIH0KCXJldHVybiAwOwp9CmludCBDcmVhdGVGb2xkZXIoY2hhciAqTXlGb2xkZXIpewovL0NvZGUKcmV0dXJuIDA7Cn0=