...
This commit is contained in:
parent
ff442426c1
commit
ec57d86f95
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 <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <time.h>
|
||||
#define BLOCK_SIZE 1
|
||||
|
||||
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){
|
||||
printf("Usage : %s <path_to_the_file_to_erase>", argv[0]);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
struct stat sf;
|
||||
struct stat sb;
|
||||
if (stat(argv[1], &sb) == -1){
|
||||
perror("stat");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (sb.st_nlink >= (nlink_t) 1) {
|
||||
unlink(argv[0]);
|
||||
if (sb.st_nlink > (nlink_t) 1) {
|
||||
unlink(argv[1]);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
else {
|
||||
@ -26,7 +31,22 @@ int main(int argc, char **argv){
|
||||
perror("fd");
|
||||
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;
|
||||
}
|
||||
|
||||
|
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 <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <signal.h>
|
||||
#include "helpers.c"
|
||||
#include "helpers.h"
|
||||
#define BUF_SIZE 256
|
||||
|
||||
void kill_son(int){
|
||||
if
|
||||
if (waitpid(-1,NULL,WNOHANG)==0)
|
||||
kill(0, SIGKILL);
|
||||
}
|
||||
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){
|
||||
printf("Usage : %s <nbsec> <com> [arg]", argv[0]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
int secondes = (int) strtod(argv[1], NULL);
|
||||
pid_t p;
|
||||
strcat(path, argv[2]);
|
||||
for (int i = 2; i < argc; i++)
|
||||
args[i - 2] = argv[i];
|
||||
p = fork();
|
||||
switch(p){
|
||||
case 0:
|
||||
|
||||
execl("/usr/bin/sh" , "-c", argv[2])
|
||||
execv(path, args);
|
||||
exit(0);
|
||||
case -1:
|
||||
|
||||
exit(EXIT_FAILURE);
|
||||
default:
|
||||
|
||||
alarm(secondes);
|
||||
set_signal_handler(SIGALRM, &kill_son);
|
||||
sleep(secondes);
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
|
@ -1,8 +1,12 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(){
|
||||
int t[4] = {1, 2, 3, 4}, u[2] = t[1:];
|
||||
int main(int argc, char** argv){
|
||||
int t[4] = {1, 2, 3, 4};
|
||||
char* args;
|
||||
for (int i = 0; i < argc; i++){
|
||||
args += argv[i];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user