- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
#include "uni.h"
int getopt_long(int argc, char *const argv[],const char *optstring,const struct option *longopts, int *longindex);
int getopt__long_only(int argc, char *const argv[],const char *optstring,const struct option *longopts, int *longindex);
int chown(const char *path, uid_t owner, gid_t group);
uid_t getuid(void);
int mkdir(const char *pathname, mode_t mode);
gid_t getgid(void);
char *dirname;
mode_t perm;
uid_t owner;
gid_t group;
int main(int argc,char **argv){
owner=getuid();
group=getgid();
perm=0600;
char *pEnd;
char *dirname=(char*)malloc(16);
if(dirname==NULL){fprintf(stderr, "out of memory!\n");return -1;}
memset( dirname,'\0',16);
strcat(dirname,argv[argc-1]);
struct option longopts[] = {
{ "mode", required_argument, NULL, 'm' },
{ "parents", NULL, NULL, 'p'},
{ "verbose", required_argument, NULL, 'v'},
{ "context", required_argument, NULL, 'c'},
{ "help", NULL, NULL, 'h'},
{ "version", NULL, NULL, 'r'},
{ 0, 0, 0, 0 }
};
char c;
while((c=getopt_long(argc,argv,"m:p:v:c:r:h",longopts,NULL)) != -1) {
switch (c) {
case 'm':
perm=strtol(optarg,&pEnd,8);
printf("%s\n",pEnd);
break;
case 'p':
if(rmdir(dirname)<0){
fprintf(stderr, "don't manage to delete folder!\n");return -1;
}
break;
case 'v':
if(mkdir(dirname,perm)<0){
fprintf(stderr, "mkdir: cannot create directory `%s`: file exists\n",dirname);return -1;
} else {
printf("mkdir: created directory `%s`\n",dirname);
return 0;
}
break;
case 'c':
break;
case 'h':
printf("Usage: mkdir [OPTION]... DIRECTORY...\n");
printf("Create the DIRECTORY(ies), if they do not already exist.\n");
printf("\n");
printf("Mandatory arguments to long options are mandatory for short options too.\n");
printf(" -m, --mode=MODE set file mode (as in chmod), not a=rwx - umask\n");
printf(" -p, --parents no error if existing, make parent directories as needed\n");
printf(" -v, --verbose print a message for each created directory\n");
printf(" -Z, --context=CTX set the SELinux security context of each created\n");
printf(" directory to CTX\n");
printf(" --help display this help and exit\n");
printf(" --version output version information and exit\n");
printf("\tAuthor AliceGoth\n");
return 0;
break;
case 'r':
printf("\tMy own mkdir\n");
printf("\tVersion 1.0\n");
printf("\tAuthor AliceGoth\n");
printf("\tEmail [email protected]\n");
break;
case 1:
AliceGoth 07.07.2012 13:45 # −1
bormand 07.07.2012 13:54 # +1
> case 'p':
> if(rmdir(dirname)<0)
O_o. WTF!?
roman-kashitsyn 07.07.2012 13:57 # 0
sayidandrtfm 07.07.2012 13:56 # +5
roman-kashitsyn 07.07.2012 13:58 # +6
Надо начать со своего компилятора C
sayidandrtfm 07.07.2012 14:11 # +7
Fai 07.07.2012 16:44 # +4
Да и вообще сначала надо компьютер собрать из телевизора, радио, скотча и зубочисток.
AliceGoth 07.07.2012 17:26 # 0
sayidandrtfm 07.07.2012 19:24 # +7
>printf("\tAuthor AliceGoth\n");
Дело Дениса Попова живее всех живых: BolgenOS на ГК, теперь и в исходниках.
P.S. с книги - это каникулы, бле@ть!
vercetti 07.07.2012 19:53 # +6
ПИШИ ХУЙНЮ @ ВЫКЛАДЫВАЙ НА ГОВНОКОД
Lure Of Chaos 07.07.2012 21:57 # +4
vercetti 07.07.2012 23:12 # +3
Fai 08.07.2012 05:52 # 0
myaut 07.07.2012 23:26 # +6
Oh, exploitable!
Fai 08.07.2012 05:53 # +6
an0nym 08.07.2012 23:52 # +2
eth0 09.07.2012 07:27 # +4
rat4 09.07.2012 08:43 # +2
bormand 09.07.2012 09:56 # +4
Lure Of Chaos 09.07.2012 10:05 # +1
vistefan 12.07.2012 23:56 # 0
Lure Of Chaos 13.07.2012 00:22 # 0
Lure Of Chaos 09.07.2012 10:08 # 0
http://otvet.mail.ru/question/77251545/
rat4 09.07.2012 10:15 # +4
Значит интернет там есть
Lure Of Chaos 09.07.2012 10:37 # +2
roman-kashitsyn 09.07.2012 10:44 # +3
rat4 09.07.2012 11:07 # +2
eth0 09.07.2012 12:36 # +3
Посмотрев тайваньский сериал о сверхъестественном, четверо китайских подростков съели дыню, начиненную крысиным ядом, чтобы "отправиться путешествовать в ад". Они оставили записку со словами: "Если в аду так же плохо, как здесь, то мы вернемся". Двоих удалось вернуть, остальным, видимо, там понравилось.