Initial commit
This commit is contained in:
25
Colleen/ASM/Colleen.s
Normal file
25
Colleen/ASM/Colleen.s
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
;Colleen
|
||||||
|
section .text
|
||||||
|
extern printf
|
||||||
|
global main
|
||||||
|
main:
|
||||||
|
push rbp
|
||||||
|
mov rbp, rsp
|
||||||
|
sub rsp, 32
|
||||||
|
and rsp, 0xFFFFFFFFFFFFFFF0
|
||||||
|
|
||||||
|
mov rdi, fmt
|
||||||
|
mov rax, 0
|
||||||
|
mov rsi, 10
|
||||||
|
mov rdx, fmt
|
||||||
|
mov rcx, 34
|
||||||
|
call printf wrt ..plt
|
||||||
|
|
||||||
|
add rsp, 32
|
||||||
|
pop rbp
|
||||||
|
|
||||||
|
mov rax,0
|
||||||
|
ret
|
||||||
|
section .data
|
||||||
|
fmt:
|
||||||
|
db ";Colleen%1$csection .text%1$c extern printf%1$c global main%1$cmain:%1$c push rbp%1$c mov rbp, rsp%1$c sub rsp, 32%1$c and rsp, 0xFFFFFFFFFFFFFFF0%1$c%1$c mov rdi, fmt%1$c mov rax, 0%1$c mov rsi, 10%1$c mov rdx, fmt%1$c mov rcx, 34%1$c call printf wrt ..plt%1$c%1$c add rsp, 32%1$c pop rbp%1$c%1$c mov rax,0%1$c ret%1$csection .data%1$c fmt:%1$c db %3$c%2$s%3$c, 0%1$c", 0
|
||||||
57
Colleen/ASM/Makefile
Normal file
57
Colleen/ASM/Makefile
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# Makefile :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: lejulien <marvin@42.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2020/07/05 18:43:38 by lejulien #+# #+# #
|
||||||
|
# Updated: 2022/07/28 12:58:35 by lejulien ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
SRCS = ./Colleen.s
|
||||||
|
|
||||||
|
SRCS_OBJS = ${SRCS:.s=.o}
|
||||||
|
|
||||||
|
FLAGS = -f elf64
|
||||||
|
|
||||||
|
.s.o:
|
||||||
|
nasm $(FLAGS) $(SRCS) -o $(SRCS_OBJS)
|
||||||
|
|
||||||
|
NAME = Colleen
|
||||||
|
|
||||||
|
$(NAME): $(SRCS_OBJS)
|
||||||
|
@echo "\e[1;35m _ _ _ _ _ _ _ "
|
||||||
|
@echo "\e[1;35m /\ \ /\ \ \e[1;31m43 6F 6C 6C 65 65 6E\e[1;35m /\ \ /\_\ /\ \ /\ \ _ /\ \ "
|
||||||
|
@echo "\e[1;35m / \ \____ / \ \ \e[1;32mby lejulien\e[1;35m / \ \ / / / _ \ \ \ / \ \ /\_\ / \ \ "
|
||||||
|
@echo "\e[1;35m / /\ \_____\ / /\ \ \ / /\ \ \ \ \ \__ /\_\ /\ \_\ / /\ \ \_/ / // /\ \ \ "
|
||||||
|
@echo "\e[1;35m / / /\/___ // / /\ \_\ / / /\ \ \ \ \___\ / / / / /\/_/ / / /\ \___/ // / /\ \_\ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /_/ / / / / / \ \_\ \__ / / / / / / / / / / \/____// /_/_ \/_/ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /__\/ / / / / _ / / / / / / / / / / / / / / / / / // /____/\ "
|
||||||
|
@echo "\e[1;35m/ / / / / // / /_____/ ___________ / / / /\ \/ / / / / / / / / / / / / / / / // /\____\/ "
|
||||||
|
@echo "\e[1;35m\ \ \__/ / // / /\ \ \ ___/__________/\ / / /__\ \ \/ / / /___/ / /___/ / /__ / / / / / // / /______ "
|
||||||
|
@echo "\e[1;35m \ \___\/ // / / \ \ \/__________ \ \/ / /____\ \ \/ / /____\/ //\__\/_/___\/ / / / / // / /_______\ "
|
||||||
|
@echo "\e[1;35m \/_____/ \/_/ \_\/\____\/ \____\/\/________\_\/\/_________/ \/_________/\/_/ \/_/ \/__________/ "
|
||||||
|
|
||||||
|
gcc $(SRCS_OBJS) -o $(NAME)
|
||||||
|
clean:
|
||||||
|
rm -f $(SRCS_OBJS)
|
||||||
|
|
||||||
|
fclean: clean
|
||||||
|
rm -f $(NAME)
|
||||||
|
|
||||||
|
comp: $(NAME)
|
||||||
|
@cat Colleen.s > file_o
|
||||||
|
@./Colleen > bin_o
|
||||||
|
diff file_o bin_o
|
||||||
|
@rm bin_o
|
||||||
|
@rm file_o
|
||||||
|
@rm Colleen.o
|
||||||
|
@rm Colleen
|
||||||
|
|
||||||
|
re: fclean $(NAME)
|
||||||
|
|
||||||
|
.PHONY: clean fclean re
|
||||||
|
|
||||||
|
|
||||||
17
Colleen/C/Colleen.c
Normal file
17
Colleen/C/Colleen.c
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#define FORMAT "#include <stdio.h>%1$c#define FORMAT %3$c%2$s%3$c%1$c%1$c/*%1$c This string format the code%1$c*/%1$c%1$cvoid generate() {%1$c printf(FORMAT, 10, FORMAT, 34);%1$c}%1$c%1$cint main(void) {%1$c /*%1$c Call generate function%1$c */%1$c generate();%1$c}%1$c"
|
||||||
|
|
||||||
|
/*
|
||||||
|
This string format the code
|
||||||
|
*/
|
||||||
|
|
||||||
|
void generate() {
|
||||||
|
printf(FORMAT, 10, FORMAT, 34);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
/*
|
||||||
|
Call generate function
|
||||||
|
*/
|
||||||
|
generate();
|
||||||
|
}
|
||||||
58
Colleen/C/Makefile
Normal file
58
Colleen/C/Makefile
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# Makefile :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: lejulien <marvin@42.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2020/07/05 18:43:38 by lejulien #+# #+# #
|
||||||
|
# Updated: 2022/07/28 12:58:35 by lejulien ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
SRCS = ./Colleen.c
|
||||||
|
|
||||||
|
SRCS_OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
|
FLAGS = -Wall -Wextra -Werror
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
gcc -c $< -o $(<:.c=.o)
|
||||||
|
|
||||||
|
NAME = Colleen
|
||||||
|
|
||||||
|
$(NAME): $(SRCS_OBJS)
|
||||||
|
@echo "\e[1;35m _ _ _ _ _ _ _ "
|
||||||
|
@echo "\e[1;35m /\ \ /\ \ \e[1;31m43 6F 6C 6C 65 65 6E\e[1;35m /\ \ /\_\ /\ \ /\ \ _ /\ \ "
|
||||||
|
@echo "\e[1;35m / \ \____ / \ \ \e[1;32mby lejulien\e[1;35m / \ \ / / / _ \ \ \ / \ \ /\_\ / \ \ "
|
||||||
|
@echo "\e[1;35m / /\ \_____\ / /\ \ \ / /\ \ \ \ \ \__ /\_\ /\ \_\ / /\ \ \_/ / // /\ \ \ "
|
||||||
|
@echo "\e[1;35m / / /\/___ // / /\ \_\ / / /\ \ \ \ \___\ / / / / /\/_/ / / /\ \___/ // / /\ \_\ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /_/ / / / / / \ \_\ \__ / / / / / / / / / / \/____// /_/_ \/_/ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /__\/ / / / / _ / / / / / / / / / / / / / / / / / // /____/\ "
|
||||||
|
@echo "\e[1;35m/ / / / / // / /_____/ ___________ / / / /\ \/ / / / / / / / / / / / / / / / // /\____\/ "
|
||||||
|
@echo "\e[1;35m\ \ \__/ / // / /\ \ \ ___/__________/\ / / /__\ \ \/ / / /___/ / /___/ / /__ / / / / / // / /______ "
|
||||||
|
@echo "\e[1;35m \ \___\/ // / / \ \ \/__________ \ \/ / /____\ \ \/ / /____\/ //\__\/_/___\/ / / / / // / /_______\ "
|
||||||
|
@echo "\e[1;35m \/_____/ \/_/ \_\/\____\/ \____\/\/________\_\/\/_________/ \/_________/\/_/ \/_/ \/__________/ "
|
||||||
|
|
||||||
|
gcc -o $(NAME) $(SRCS_OBJS) $(FLAGS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(SRCS_OBJS)
|
||||||
|
|
||||||
|
fclean: clean
|
||||||
|
rm -f $(NAME)
|
||||||
|
|
||||||
|
comp: $(NAME)
|
||||||
|
@cat Colleen.c > file_o
|
||||||
|
@./Colleen > bin_o
|
||||||
|
diff file_o bin_o
|
||||||
|
@rm bin_o
|
||||||
|
@rm file_o
|
||||||
|
@rm Colleen.o
|
||||||
|
@rm Colleen
|
||||||
|
|
||||||
|
re: fclean $(NAME)
|
||||||
|
|
||||||
|
.PHONY: clean fclean re
|
||||||
|
|
||||||
|
|
||||||
8
Grace/C/Grace.c
Normal file
8
Grace/C/Grace.c
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#define F "#include <stdio.h>%1$c#define F %2$c%3$s%2$c%1$c#define PF() fprintf(o, F, 10, 34, F);%1$c#define FT()int main(){FILE *o=fopen(%2$c./Grace_kid.c%2$c, %2$cw%2$c);PF() fclose(o);}%1$c/*%1$c This will call the main and the defined format, everything will be replaced in compile-time%1$c*/%1$cFT()%1$c"
|
||||||
|
#define PF() fprintf(o, F, 10, 34, F);
|
||||||
|
#define FT()int main(){FILE *o=fopen("./Grace_kid.c", "w");PF() fclose(o);}
|
||||||
|
/*
|
||||||
|
This will call the main and the defined format, everything will be replaced in compile-time
|
||||||
|
*/
|
||||||
|
FT()
|
||||||
56
Grace/C/Makefile
Normal file
56
Grace/C/Makefile
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# Makefile :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: lejulien <marvin@42.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2020/07/05 18:43:38 by lejulien #+# #+# #
|
||||||
|
# Updated: 2022/07/28 14:21:48 by lejulien ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
SRCS = ./Grace.c
|
||||||
|
|
||||||
|
SRCS_OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
|
FLAGS = -Wall -Wextra -Werror
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
gcc -c $< -o $(<:.c=.o)
|
||||||
|
|
||||||
|
NAME = Grace
|
||||||
|
|
||||||
|
$(NAME): $(SRCS_OBJS)
|
||||||
|
@echo "\e[1;35m _ _ _ _ _ _ _ "
|
||||||
|
@echo "\e[1;35m /\ \ /\ \ \e[1;31m 47 72 61 63 65 \e[1;35m /\ \ /\_\ /\ \ /\ \ _ /\ \ "
|
||||||
|
@echo "\e[1;35m / \ \____ / \ \ \e[1;32mby lejulien\e[1;35m / \ \ / / / _ \ \ \ / \ \ /\_\ / \ \ "
|
||||||
|
@echo "\e[1;35m / /\ \_____\ / /\ \ \ / /\ \ \ \ \ \__ /\_\ /\ \_\ / /\ \ \_/ / // /\ \ \ "
|
||||||
|
@echo "\e[1;35m / / /\/___ // / /\ \_\ / / /\ \ \ \ \___\ / / / / /\/_/ / / /\ \___/ // / /\ \_\ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /_/ / / / / / \ \_\ \__ / / / / / / / / / / \/____// /_/_ \/_/ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /__\/ / / / / _ / / / / / / / / / / / / / / / / / // /____/\ "
|
||||||
|
@echo "\e[1;35m/ / / / / // / /_____/ ___________ / / / /\ \/ / / / / / / / / / / / / / / / // /\____\/ "
|
||||||
|
@echo "\e[1;35m\ \ \__/ / // / /\ \ \ ___/__________/\ / / /__\ \ \/ / / /___/ / /___/ / /__ / / / / / // / /______ "
|
||||||
|
@echo "\e[1;35m \ \___\/ // / / \ \ \/__________ \ \/ / /____\ \ \/ / /____\/ //\__\/_/___\/ / / / / // / /_______\ "
|
||||||
|
@echo "\e[1;35m \/_____/ \/_/ \_\/\____\/ \____\/\/________\_\/\/_________/ \/_________/\/_/ \/_/ \/__________/ "
|
||||||
|
|
||||||
|
gcc -o $(NAME) $(SRCS_OBJS) $(FLAGS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(SRCS_OBJS)
|
||||||
|
|
||||||
|
fclean: clean
|
||||||
|
rm -f $(NAME)
|
||||||
|
rm -f $(NAME)_kid.c
|
||||||
|
|
||||||
|
comp: $(NAME)
|
||||||
|
./${NAME}
|
||||||
|
diff Grace_kid.c Grace.c
|
||||||
|
@rm Grace_kid.c
|
||||||
|
@rm -f $(SRC_OBJS)
|
||||||
|
|
||||||
|
re: fclean $(NAME)
|
||||||
|
|
||||||
|
.PHONY: clean fclean re
|
||||||
|
|
||||||
|
|
||||||
26
README.md
Normal file
26
README.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# quine concepts
|
||||||
|
|
||||||
|
A quine is basically a program that write it's own source code.
|
||||||
|
For this project we had to do 3 quine that are graduatly more difficult.
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
- Colleen:
|
||||||
|
This one is simple enough to start understanding how quine are made.
|
||||||
|
And so with some research I learned that a quine in C works with a format string and printf
|
||||||
|
```C
|
||||||
|
// General algorythm of a quine in C
|
||||||
|
char f[] = "__CODE_PRINTF_FORMATED__";
|
||||||
|
int main (int ac, char **av) {
|
||||||
|
printf(f, __SOME_VARS_, f, _SOME_VARS_);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
And so, we can see that the with the first f we write the file. And with the second one we manage to write it's own format again.
|
||||||
|
After this the trick is using diff until there are no diffs.
|
||||||
|
- Grace:
|
||||||
|
This one is that you have to create a new file and write the code inside instead of outputting it.
|
||||||
|
Plus you'll need to define you main.
|
||||||
|
- Sully:
|
||||||
|
The last one like Grace but you input a number to the program and it will create n file and create n executables.
|
||||||
|
But not 0 to stop it;
|
||||||
|
|
||||||
50
Sully/C/Makefile
Normal file
50
Sully/C/Makefile
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# Makefile :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: lejulien <marvin@42.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2020/07/05 18:43:38 by lejulien #+# #+# #
|
||||||
|
# Updated: 2022/07/29 12:58:41 by lejulien ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
SRCS = ./Sully.c
|
||||||
|
|
||||||
|
SRCS_OBJS = ${SRCS:.c=.o}
|
||||||
|
|
||||||
|
FLAGS = -Wall -Wextra -Werror
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
gcc -c $< -o $(<:.c=.o)
|
||||||
|
|
||||||
|
NAME = Sully
|
||||||
|
|
||||||
|
$(NAME): $(SRCS_OBJS)
|
||||||
|
@echo "\e[1;35m _ _ _ _ _ _ _ "
|
||||||
|
@echo "\e[1;35m /\ \ /\ \ \e[1;31m 53 75 6C 6C 79 \e[1;35m /\ \ /\_\ /\ \ /\ \ _ /\ \ "
|
||||||
|
@echo "\e[1;35m / \ \____ / \ \ \e[1;32mby lejulien\e[1;35m / \ \ / / / _ \ \ \ / \ \ /\_\ / \ \ "
|
||||||
|
@echo "\e[1;35m / /\ \_____\ / /\ \ \ / /\ \ \ \ \ \__ /\_\ /\ \_\ / /\ \ \_/ / // /\ \ \ "
|
||||||
|
@echo "\e[1;35m / / /\/___ // / /\ \_\ / / /\ \ \ \ \___\ / / / / /\/_/ / / /\ \___/ // / /\ \_\ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /_/ / / / / / \ \_\ \__ / / / / / / / / / / \/____// /_/_ \/_/ "
|
||||||
|
@echo "\e[1;35m / / / / / // / /__\/ / / / / _ / / / / / / / / / / / / / / / / / // /____/\ "
|
||||||
|
@echo "\e[1;35m/ / / / / // / /_____/ ___________ / / / /\ \/ / / / / / / / / / / / / / / / // /\____\/ "
|
||||||
|
@echo "\e[1;35m\ \ \__/ / // / /\ \ \ ___/__________/\ / / /__\ \ \/ / / /___/ / /___/ / /__ / / / / / // / /______ "
|
||||||
|
@echo "\e[1;35m \ \___\/ // / / \ \ \/__________ \ \/ / /____\ \ \/ / /____\/ //\__\/_/___\/ / / / / // / /_______\ "
|
||||||
|
@echo "\e[1;35m \/_____/ \/_/ \_\/\____\/ \____\/\/________\_\/\/_________/ \/_________/\/_/ \/_/ \/__________/ "
|
||||||
|
|
||||||
|
gcc -o $(NAME) $(SRCS_OBJS) $(FLAGS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(SRCS_OBJS)
|
||||||
|
|
||||||
|
fclean: clean
|
||||||
|
rm -f $(NAME)
|
||||||
|
rm -f $(NAME)_*
|
||||||
|
|
||||||
|
re: fclean $(NAME)
|
||||||
|
|
||||||
|
.PHONY: clean fclean re
|
||||||
|
|
||||||
|
|
||||||
22
Sully/C/Sully.c
Normal file
22
Sully/C/Sully.c
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <strings.h>
|
||||||
|
|
||||||
|
#define FORMAT "#include <stdio.h>%1$c#include <stdlib.h>%1$c#include <strings.h>%1$c%1$c#define FORMAT %2$c%4$s%2$c%1$c%1$cint i=%5$d;%1$cchar nbuf[1024];%1$c%1$cint main() {%1$c bzero(nbuf,1024);%1$c sprintf(nbuf,%2$c./Sully_%3$cd.c%2$c,i-1);%1$c FILE *o = fopen(nbuf,%2$cw%2$c);%1$c fprintf(o,FORMAT,10,34,37,FORMAT,i-1);%1$c fclose(o);%1$c bzero(nbuf,1024);%1$c if (i-1>0)%1$c sprintf(nbuf,%2$cclang -Wall -Wextra -Werror ./Sully_%3$c1$d.c -o Sully_%3$c1$d;./Sully_%3$c1$d%2$c,i-1);%1$c else%1$c sprintf(nbuf,%2$cclang -Wall -Wextra -Werror ./Sully_%3$c1$d.c -o Sully_%3$c1$d%2$c,i-1);%1$c system(nbuf);%1$c}%1$c"
|
||||||
|
|
||||||
|
int i=5;
|
||||||
|
char nbuf[1024];
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
bzero(nbuf,1024);
|
||||||
|
sprintf(nbuf,"./Sully_%d.c",i-1);
|
||||||
|
FILE *o = fopen(nbuf,"w");
|
||||||
|
fprintf(o,FORMAT,10,34,37,FORMAT,i-1);
|
||||||
|
fclose(o);
|
||||||
|
bzero(nbuf,1024);
|
||||||
|
if (i-1>0)
|
||||||
|
sprintf(nbuf,"clang -Wall -Wextra -Werror ./Sully_%1$d.c -o Sully_%1$d;./Sully_%1$d",i-1);
|
||||||
|
else
|
||||||
|
sprintf(nbuf,"clang -Wall -Wextra -Werror ./Sully_%1$d.c -o Sully_%1$d",i-1);
|
||||||
|
system(nbuf);
|
||||||
|
}
|
||||||
30
Sully/C/src/Sully.c
Normal file
30
Sully/C/src/Sully.c
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <strings.h>
|
||||||
|
|
||||||
|
char f[]="#include <stdio.h>%c#include <stdlib.h>%c#include <strings.h>%c%cchar f[]=%c%s%c;%cint i = %d;%cchar nbuf[1024];%c%cint main(int ac, char **av) {%c // get values%c i = (ac == 2)?atoi(av[1]):i;%c if (i < 0) return 0;%c // open file%c bzero(nbuf, 1024);%c sprintf(nbuf, %c./Sully_%cd.c%c, i);%c FILE *o = fopen(nbuf, %cw%c);%c // write code to other%c fprintf(o, f, 10, 10, 10, 10, 34, f, 34, 10, i, 10, 10, 10, 10, 10, 10, 10, 10, 10, 34, 37, 34, 10, 34, 34, 10, 10, 10, 10, 10, 10, 10, 34, 37, 37, 37, 37, 34, 10, 10, 34, 37, 37, 37, 37, 34, 10, 10, 34, 37, 37, 34, 10, 10, 10, 10);%c fclose(o);%c // prepare compilation settings%c bzero(nbuf, 1024);%c if (ac == 1)%c sprintf(nbuf, %cclang -Wall -Wextra -Werror ./Sully_%cd.c -o Sully_%cd;./Sully_%cd %cd%c, i, i, i, i);%c else if (i > 0)%c sprintf(nbuf, %cclang -Wall -Wextra -Werror ./Sully_%cd.c -o Sully_%cd;./Sully_%cd %cd%c, i, i, i, i-1);%c else%c sprintf(nbuf, %cclang -Wall -Wextra -Werror ./Sully_%cd.c -o Sully_%cd%c, i, i);%c // execute%c system(nbuf);%c}%c";
|
||||||
|
int i = 5;
|
||||||
|
char nbuf[1024];
|
||||||
|
|
||||||
|
int main(int ac, char **av) {
|
||||||
|
// get values
|
||||||
|
i = (ac == 2)?atoi(av[1]):i;
|
||||||
|
if (i < 0) return 0;
|
||||||
|
// open file
|
||||||
|
bzero(nbuf, 1024);
|
||||||
|
sprintf(nbuf, "./Sully_%d.c", i);
|
||||||
|
FILE *o = fopen(nbuf, "w");
|
||||||
|
// write code to other
|
||||||
|
fprintf(o, f, 10, 10, 10, 10, 34, f, 34, 10, i, 10, 10, 10, 10, 10, 10, 10, 10, 10, 34, 37, 34, 10, 34, 34, 10, 10, 10, 10, 10, 10, 10, 34, 37, 37, 37, 37, 34, 10, 10, 34, 37, 37, 37, 37, 34, 10, 10, 34, 37, 37, 34, 10, 10, 10, 10);
|
||||||
|
fclose(o);
|
||||||
|
// prepare compilation settings
|
||||||
|
bzero(nbuf, 1024);
|
||||||
|
if (ac == 1)
|
||||||
|
sprintf(nbuf, "clang -Wall -Wextra -Werror ./Sully_%d.c -o Sully_%d;./Sully_%d %d", i, i, i, i);
|
||||||
|
else if (i > 0)
|
||||||
|
sprintf(nbuf, "clang -Wall -Wextra -Werror ./Sully_%d.c -o Sully_%d;./Sully_%d %d", i, i, i, i-1);
|
||||||
|
else
|
||||||
|
sprintf(nbuf, "clang -Wall -Wextra -Werror ./Sully_%d.c -o Sully_%d", i, i);
|
||||||
|
// execute
|
||||||
|
system(nbuf);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user