notes.txt 4.21 KB
Newer Older
pêle-mêle's avatar
pêle-mêle committed
1
2
3
4
5
"exit 42" doit exit en renvoyant 42
et tester sur bash "exit 42 1431" ou "exit fds"



pêle-mêle's avatar
pêle-mêle committed
6
arthur:
abenoit's avatar
abenoit committed
7

pêle-mêle's avatar
pêle-mêle committed
8
9
print "^C" au signal CTRL-C sans commande en boucle inf (comme "cat" ou "yes")
et CTRL-\ ne fait rien sans commande en boucle inf
abenoit's avatar
abenoit committed
10

pêle-mêle's avatar
pêle-mêle committed
11
===========================??? oui on peut pas delete l'input en cours, et ensuite si on fait CTRL-C on peut plus refaire tout de suite CTRL-D, et y'a des leaks
pêle-mêle's avatar
pêle-mêle committed
12
13
CTRL-D apres avoir ecrit un debut de cmd

abenoit's avatar
abenoit committed
14
==========================A regler dans le parsing ?
pêle-mêle's avatar
pêle-mêle committed
15
16
$unknown_var ; ls ; ls (premiere commande vide mais il fait quand meme ls)

pêle-mêle's avatar
pêle-mêle committed
17
=======================Resolu: ah?
18
create file when redirecting output without doing anything ("> a")
abenoit's avatar
abenoit committed
19

abenoit's avatar
abenoit committed
20
====================Strerror added
pêle-mêle's avatar
pêle-mêle committed
21
error when redir_in file does not exist ("< unknown_file")
pêle-mêle's avatar
pêle-mêle committed
22
23
24
25
26
-> tests:
< e
echo < e
echo fds < e
ls < e
pêle-mêle's avatar
pêle-mêle committed
27

abenoit's avatar
abenoit committed
28
====================Strerror added
pêle-mêle's avatar
pêle-mêle committed
29
error when redir_out file does not have write permission
pêle-mêle's avatar
pêle-mêle committed
30
memes tests que pour redir_in ci-dessus, en remplacant < par >
pêle-mêle's avatar
pêle-mêle committed
31

pêle-mêle's avatar
pêle-mêle committed
32
"cat | exit"======>ne devrait pas exit
pêle-mêle's avatar
pêle-mêle committed
33

pêle-mêle's avatar
pêle-mêle committed
34
35
36
37
check_syntax:
echo "'"
echo '\'
echo '"'
abenoit's avatar
abenoit committed
38
"cat |"======>multiline error
39

abenoit's avatar
abenoit committed
40

41

Abenoit's avatar
Abenoit committed
42

abenoit's avatar
abenoit committed
43

pêle-mêle's avatar
pêle-mêle committed
44
45
masaki:

pêle-mêle's avatar
pêle-mêle committed
46
47
48
49
a la fin avec rgrep:
erreurs de write et de ft_put* a terminer
gestion d'erreurs des fonctions autorisees une a une

pêle-mêle's avatar
pêle-mêle committed
50

pêle-mêle's avatar
pêle-mêle committed
51
builtins: set stat_loc?
pêle-mêle's avatar
pêle-mêle committed
52

53
mkdir ok; cd ok; rmdir ../ok; pwd
pêle-mêle's avatar
pêle-mêle committed
54

pêle-mêle's avatar
pêle-mêle committed
55
cd: leaks in getcwd
56
57
	mkdir ok ; cd ok ; rmdir ../ok ; cd ..
====> segfault a corriger
58

pêle-mêle's avatar
pêle-mêle committed
59
60
61
62
63



references pour gestion des signaux : https://indradhanush.github.io/blog/writing-a-unix-shell-part-3/

64
65
66
trop bizarre la len d'un token ne peut pas etre superieure a 4095 sur linux
et on peut pas ecrire plus de 1023 (ou 2047?) chars apres le prompt sur mac
>>!!Gnl recursif limite par la taille de la stack ? -> verifier ulimit -a !!
67

pêle-mêle's avatar
pêle-mêle committed
68
https://brennan.io/2015/01/16/write-a-shell-in-c/
pêle-mêle's avatar
pêle-mêle committed
69

70
redirections https://catonmat.net/bash-one-liners-explained-part-three
71
multiple redirections https://stackoverflow.com/questions/20081653/two-redirection-operators-in-one-command
72
redirection and pipe explanation https://askubuntu.com/questions/172982/what-is-the-difference-between-redirection-and-pipe/1074550#1074550
pêle-mêle's avatar
pêle-mêle committed
73

74
75
signals https://www.youtube.com/watch?v=83M5-NPDeWs

pêle-mêle's avatar
pêle-mêle committed
76
77
78
Shell Command Language https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
man bash https://www.gnu.org/software/bash/manual/html_node/index.html

79
80
81
82
83
84
85
86
man bash -> QUOTING
	non-quoted \ : écrit littéralement le caractère qui suit, à l’exception de <newline>
	'' : - écrit littéralement ce qui est entre single quotes
		 - ' ou \' ne peuvent pas apparaitre entre single quotes
	"" : - écrit littéralement sauf pour $, `, \ et ! si history expansion est activé
		 - $ et ` gardent leur special meaning
		 - \ reste un escape char seulement pour $, `, ", \, ou <newline>
		 - * et @ ont un special meaning entre double quotes
pêle-mêle's avatar
pêle-mêle committed
87
88
	https://stackoverflow.com/questions/25941394/how-does-bash-deal-with-nested-quotes

89
testeur https://github.com/cacharle/minishell_test.git
90
https://github.com/lienardale/alientest_minishell.git
misc's avatar
misc committed
91
92
basile: https://docs.google.com/spreadsheets/d/1pD3UEKayYV_LiHoYz8N6aOimqS9gxfg3TlZgQ1CFS3A/edit#gid=1627853444
+ tests d'adeline!
Abenoit's avatar
Abenoit committed
93

pêle-mêle's avatar
pêle-mêle committed
94
header file sections https://www.doc.ic.ac.uk/lab/cplus/cstyle.html#N100D8
abenoit's avatar
abenoit committed
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

refs peerclass mboivin:
https://sgeos.github.io/unix/c/signals/2016/02/24/passing-values-to-c-signal-handlers.html
https://en.wikipedia.org/wiki/Recursive_descent_parser
https://en.wikipedia.org/wiki/Tree_traversal
https://ruslanspivak.com/lsbasi-part1/
http://www.gaudry.be/langages-analyse-syntaxique-ast.html
https://www.aosabook.org/en/bash.html

Flowcharts :
https://www.programiz.com/article/flowchart-programming
Nommer les variables et fonctions :
https://github.com/kettanaito/naming-cheatsheet
Un concept important :
https://fr.wikipedia.org/wiki/Programmation_modulaire
Guide ANSSI programmation en C :
https://www.ssi.gouv.fr/guide/regles-de-programmation-pour-le-developpement-securise-de-logiciels-en-langage-c/
Lire "Introduction" et "Backgrounds" suffit (pour connaître des termes comme : modulaire, monolithe, microservice, etc. Un autre terme à connaître est refactoring) :
https://www.codeproject.com/Articles/1210984/How-to-Organize-Clean-Architecture-to-Modular-Patt
Un livre bien même si c'est du Java :
https://www.goodreads.com/work/quotes/3779106-clean-code-a-handbook-of-agile-software-craftsmanship-robert-c-martin