Merge branch 'master' of dwarves.iut-fbleau.fr:ngwalang/SCR
Just an error !!
This commit is contained in:
commit
b9fa8c4dce
158
SCR3.1/TP2/,
158
SCR3.1/TP2/,
@ -1,158 +0,0 @@
|
|||||||
[4mDD[24m(1) User Commands [4mDD[24m(1)
|
|
||||||
|
|
||||||
[1mNAME[0m
|
|
||||||
dd - convert and copy a file
|
|
||||||
|
|
||||||
[1mSYNOPSIS[0m
|
|
||||||
[1mdd [22m[[4mOPERAND[24m]...
|
|
||||||
[1mdd [4m[22mOPTION[0m
|
|
||||||
|
|
||||||
[1mDESCRIPTION[0m
|
|
||||||
Copy a file, converting and formatting according to the operands.
|
|
||||||
|
|
||||||
bs=BYTES
|
|
||||||
read and write up to BYTES bytes at a time (default: 512); over‐
|
|
||||||
rides ibs and obs
|
|
||||||
|
|
||||||
cbs=BYTES
|
|
||||||
convert BYTES bytes at a time
|
|
||||||
|
|
||||||
conv=CONVS
|
|
||||||
convert the file as per the comma separated symbol list
|
|
||||||
|
|
||||||
count=N
|
|
||||||
copy only N input blocks
|
|
||||||
|
|
||||||
ibs=BYTES
|
|
||||||
read up to BYTES bytes at a time (default: 512)
|
|
||||||
|
|
||||||
if=FILE
|
|
||||||
read from FILE instead of stdin
|
|
||||||
|
|
||||||
iflag=FLAGS
|
|
||||||
read as per the comma separated symbol list
|
|
||||||
|
|
||||||
obs=BYTES
|
|
||||||
write BYTES bytes at a time (default: 512)
|
|
||||||
|
|
||||||
of=FILE
|
|
||||||
write to FILE instead of stdout
|
|
||||||
|
|
||||||
oflag=FLAGS
|
|
||||||
write as per the comma separated symbol list
|
|
||||||
|
|
||||||
seek=N (or oseek=N) skip N obs-sized output blocks
|
|
||||||
|
|
||||||
skip=N (or iseek=N) skip N ibs-sized input blocks
|
|
||||||
|
|
||||||
status=LEVEL
|
|
||||||
The LEVEL of information to print to stderr; ’none’ suppresses
|
|
||||||
everything but error messages, ’noxfer’ suppresses the final
|
|
||||||
transfer statistics, ’progress’ shows periodic transfer statis‐
|
|
||||||
tics
|
|
||||||
|
|
||||||
N and BYTES may be followed by the following multiplicative suffixes:
|
|
||||||
c=1, w=2, b=512, kB=1000, K=1024, MB=1000*1000, M=1024*1024, xM=M,
|
|
||||||
GB=1000*1000*1000, G=1024*1024*1024, and so on for T, P, E, Z, Y, R, Q.
|
|
||||||
Binary prefixes can be used, too: KiB=K, MiB=M, and so on. If N ends
|
|
||||||
in ’B’, it counts bytes not blocks.
|
|
||||||
|
|
||||||
Each CONV symbol may be:
|
|
||||||
|
|
||||||
ascii from EBCDIC to ASCII
|
|
||||||
|
|
||||||
ebcdic from ASCII to EBCDIC
|
|
||||||
|
|
||||||
ibm from ASCII to alternate EBCDIC
|
|
||||||
|
|
||||||
block pad newline-terminated records with spaces to cbs-size
|
|
||||||
|
|
||||||
unblock
|
|
||||||
replace trailing spaces in cbs-size records with newline
|
|
||||||
|
|
||||||
lcase change upper case to lower case
|
|
||||||
|
|
||||||
ucase change lower case to upper case
|
|
||||||
|
|
||||||
sparse try to seek rather than write all-NUL output blocks
|
|
||||||
|
|
||||||
swab swap every pair of input bytes
|
|
||||||
|
|
||||||
sync pad every input block with NULs to ibs-size; when used with
|
|
||||||
block or unblock, pad with spaces rather than NULs
|
|
||||||
|
|
||||||
excl fail if the output file already exists
|
|
||||||
|
|
||||||
nocreat
|
|
||||||
do not create the output file
|
|
||||||
|
|
||||||
notrunc
|
|
||||||
do not truncate the output file
|
|
||||||
|
|
||||||
noerror
|
|
||||||
continue after read errors
|
|
||||||
|
|
||||||
fdatasync
|
|
||||||
physically write output file data before finishing
|
|
||||||
|
|
||||||
fsync likewise, but also write metadata
|
|
||||||
|
|
||||||
Each FLAG symbol may be:
|
|
||||||
|
|
||||||
append append mode (makes sense only for output; conv=notrunc sug‐
|
|
||||||
gested)
|
|
||||||
|
|
||||||
direct use direct I/O for data
|
|
||||||
|
|
||||||
directory
|
|
||||||
fail unless a directory
|
|
||||||
|
|
||||||
dsync use synchronized I/O for data
|
|
||||||
|
|
||||||
sync likewise, but also for metadata
|
|
||||||
|
|
||||||
fullblock
|
|
||||||
accumulate full blocks of input (iflag only)
|
|
||||||
|
|
||||||
nonblock
|
|
||||||
use non-blocking I/O
|
|
||||||
|
|
||||||
noatime
|
|
||||||
do not update access time
|
|
||||||
|
|
||||||
nocache
|
|
||||||
Request to drop cache. See also oflag=sync
|
|
||||||
|
|
||||||
noctty do not assign controlling terminal from file
|
|
||||||
|
|
||||||
nofollow
|
|
||||||
do not follow symlinks
|
|
||||||
|
|
||||||
Sending a USR1 signal to a running ’dd’ process makes it print I/O sta‐
|
|
||||||
tistics to standard error and then resume copying.
|
|
||||||
|
|
||||||
Options are:
|
|
||||||
|
|
||||||
[1m--help [22mdisplay this help and exit
|
|
||||||
|
|
||||||
[1m--version[0m
|
|
||||||
output version information and exit
|
|
||||||
|
|
||||||
[1mAUTHOR[0m
|
|
||||||
Written by Paul Rubin, David MacKenzie, and Stuart Kemp.
|
|
||||||
|
|
||||||
[1mREPORTING BUGS[0m
|
|
||||||
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
|
|
||||||
Report any translation bugs to <https://translationproject.org/team/>
|
|
||||||
|
|
||||||
[1mCOPYRIGHT[0m
|
|
||||||
Copyright © 2023 Free Software Foundation, Inc. License GPLv3+: GNU
|
|
||||||
GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
|
|
||||||
This is free software: you are free to change and redistribute it.
|
|
||||||
There is NO WARRANTY, to the extent permitted by law.
|
|
||||||
|
|
||||||
[1mSEE ALSO[0m
|
|
||||||
Full documentation <https://www.gnu.org/software/coreutils/dd>
|
|
||||||
or available locally via: info '(coreutils) dd invocation'
|
|
||||||
|
|
||||||
GNU coreutils 9.3 April 2023 [4mDD[24m(1)
|
|
BIN
SCR3.1/TP2/copy
BIN
SCR3.1/TP2/copy
Binary file not shown.
Binary file not shown.
@ -3,21 +3,26 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <errno.h>
|
||||||
|
#include <time.h>
|
||||||
|
#define BLOCK_SIZE 1
|
||||||
|
|
||||||
int main(int argc, char **argv){
|
int main(int argc, char **argv){
|
||||||
int fd, read_bytes, wrote_bytes;
|
int fd, fd1;
|
||||||
|
ssize_t read_bytes, wrote_bytes;
|
||||||
|
char buf[BLOCK_SIZE];
|
||||||
|
char *name;
|
||||||
if (argc != 2){
|
if (argc != 2){
|
||||||
printf("Usage : %s <path_to_the_file_to_erase>", argv[0]);
|
printf("Usage : %s <path_to_the_file_to_erase>", argv[0]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
struct stat sf;
|
struct stat sb;
|
||||||
if (stat(argv[1], &sb) == -1){
|
if (stat(argv[1], &sb) == -1){
|
||||||
perror("stat");
|
perror("stat");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
if (sb.st_nlink >= (nlink_t) 1) {
|
if (sb.st_nlink > (nlink_t) 1) {
|
||||||
unlink(argv[0]);
|
unlink(argv[1]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -26,7 +31,22 @@ int main(int argc, char **argv){
|
|||||||
perror("fd");
|
perror("fd");
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
while (read_bytes = read(fd,buf,BLOCK_SIZE) > 0) {
|
||||||
|
wrote_bytes = write(fd,"0xff",BLOCK_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
fd1 = open("/dev/urandom", O_RDONLY);
|
||||||
|
while (read(fd, buf, BLOCK_SIZE) > 0) {
|
||||||
|
read_bytes = read(fd1, buf, BLOCK_SIZE);
|
||||||
|
wrote_bytes = write(fd, buf, BLOCK_SIZE);
|
||||||
|
}
|
||||||
|
srand(time(NULL));
|
||||||
|
name = "file" + (char) rand() + ".crypt";
|
||||||
|
rename(argv[1], name);
|
||||||
|
unlink(name);
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
close(fd1);
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
SCR3.1/TP2/test
Normal file
1
SCR3.1/TP2/test
Normal file
@ -0,0 +1 @@
|
|||||||
|
Eh
|
BIN
SCR3.1/TP2/toto
BIN
SCR3.1/TP2/toto
Binary file not shown.
Binary file not shown.
BIN
SCR3.1/TP2/toto2
BIN
SCR3.1/TP2/toto2
Binary file not shown.
1
SCR3.1/TP3/cat
Normal file
1
SCR3.1/TP3/cat
Normal file
@ -0,0 +1 @@
|
|||||||
|
Il est 22:26 ,et nous sommes mardi ! input
|
@ -1,35 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#define SIZE 1000
|
|
||||||
int search(const unsigned char * t,int start,int end)
|
|
||||||
{
|
|
||||||
for (int i = start; i <= end; i++){
|
|
||||||
int
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc , char * argv[])
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
unsigned char arr[SIZE];
|
|
||||||
|
|
||||||
srandom(time(NULL));
|
|
||||||
|
|
||||||
for (i = 0; i < SIZE; i++)
|
|
||||||
arr[i] = (unsigned char) (random() % 255) + 1;
|
|
||||||
|
|
||||||
printf("Enter a number between 0 and %d: ", SIZE);
|
|
||||||
scanf(" %d", &i);
|
|
||||||
if (i >= 0 && i < SIZE) arr[i] = 0;
|
|
||||||
|
|
||||||
if (search(arr,0,SIZE-1))
|
|
||||||
printf("Found !\n");
|
|
||||||
else
|
|
||||||
printf("Not found !\n");
|
|
||||||
return EXIT_SUCCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1 +1,2 @@
|
|||||||
La voie lactée, les gros yeux, le bonheur d'une impératrice
|
Coucou
|
||||||
|
Il est 22:26 ,et nous sommes mardi !
|
||||||
|
@ -1 +1,3 @@
|
|||||||
La voie lactée, les gros yeux, le bonheur dune' impératrice
|
Coucou
|
||||||
|
lI est 22:26 ,et nous smmes mardi !
|
||||||
|
o
|
BIN
SCR3.1/TP4/mytimeout
Executable file
BIN
SCR3.1/TP4/mytimeout
Executable file
Binary file not shown.
@ -1,24 +1,41 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include "helpers.c"
|
||||||
|
#include "helpers.h"
|
||||||
|
#define BUF_SIZE 256
|
||||||
|
|
||||||
void kill_son(int){
|
void kill_son(int){
|
||||||
if
|
if (waitpid(-1,NULL,WNOHANG)==0)
|
||||||
|
kill(0, SIGKILL);
|
||||||
|
}
|
||||||
int main(int argc, char **argv){
|
int main(int argc, char **argv){
|
||||||
|
char* args[argc - 2];
|
||||||
|
char path[BUF_SIZE] = "/usr/bin/";
|
||||||
|
int secondes = (int) strtod(argv[1], NULL);
|
||||||
|
pid_t p;
|
||||||
if (argc < 3){
|
if (argc < 3){
|
||||||
printf("Usage : %s <nbsec> <com> [arg]", argv[0]);
|
printf("Usage : %s <nbsec> <com> [arg]", argv[0]);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
int secondes = (int) strtod(argv[1], NULL);
|
strcat(path, argv[2]);
|
||||||
pid_t p;
|
for (int i = 2; i < argc; i++)
|
||||||
|
args[i - 2] = argv[i];
|
||||||
p = fork();
|
p = fork();
|
||||||
switch(p){
|
switch(p){
|
||||||
case 0:
|
case 0:
|
||||||
|
execv(path, args);
|
||||||
execl("/usr/bin/sh" , "-c", argv[2])
|
exit(0);
|
||||||
case -1:
|
case -1:
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
default:
|
default:
|
||||||
|
alarm(secondes);
|
||||||
|
set_signal_handler(SIGALRM, &kill_son);
|
||||||
|
sleep(secondes);
|
||||||
|
}
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
int main(){
|
int main(int argc, char** argv){
|
||||||
int t[4] = {1, 2, 3, 4}, u[2] = t[1:];
|
int t[4] = {1, 2, 3, 4};
|
||||||
|
char* args;
|
||||||
|
for (int i = 0; i < argc; i++){
|
||||||
|
args += argv[i];
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user