Compare commits

...

4 Commits

Author SHA1 Message Date
Denis Monnerat 395466253c ds.pdf 2026-10-08 19:51:31 +02:00
Denis Monnerat 6060731cf2 correction td6 2026-10-07 17:19:14 +02:00
Denis Monnerat 0e4adccee3 cm/td/tp pipe 2026-10-07 10:01:20 +02:00
Denis Monnerat 8eb907bd53 cm/td/tp pipe 2026-10-07 09:59:38 +02:00
10 changed files with 356 additions and 1 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+74
View File
@@ -0,0 +1,74 @@
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
#include <signal.h>
void seq(int n)
{
for(int i = 2; i <= n; i++)
write(STDOUT_FILENO, &i, sizeof i);
exit(0);
}
void filtre(int prime)
{
while(1){
int n;
ssize_t nb_read = read(STDIN_FILENO, &n, sizeof n);
if (nb_read <= 0)
break;
if ((n%prime) != 0)
write(STDOUT_FILENO, &n, sizeof n);
}
exit(0);
}
int main(int argc, char *argv[])
{
pid_t p;
int fd[2];
struct sigaction sa = {0};
sa.sa_handler = SIG_IGN;
sigaction(SIGCHLD, &sa, NULL);
int N = strtol(argv[1], NULL, 0);
assert(pipe(fd) == 0);
p = fork();
if (p == 0){
close(fd[0]);
dup2(fd[1],STDOUT_FILENO);
close(fd[1]);
seq(N);
}
close(fd[1]);
dup2(fd[0],STDIN_FILENO);
close(fd[0]);
while(1){
int prime;
int fdd[2];
ssize_t nb_read = read(STDIN_FILENO, &prime, sizeof prime);
if (nb_read <= 0)
break;
printf("%d\n",prime);
assert(pipe(fdd) == 0);
p = fork();
if (p == 0){
close(fdd[0]);
dup2(fdd[1],STDOUT_FILENO);
close(fdd[1]);
filtre(prime);
}
close(fdd[1]);
dup2(fdd[0], STDIN_FILENO);
close(fdd[0]);
}
return 0;
}
+41
View File
@@ -0,0 +1,41 @@
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
#include <sys/wait.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
pid_t p1,p2;
int fd[2];
assert(pipe(fd) == 0);
p1 = fork();
if (p1 == 0){
close(fd[0]);
dup2(fd[1],STDOUT_FILENO);
close(fd[1]);
execlp("ls","ls",NULL);
assert(0);
}
p2 = fork();
if (p2 == 0){
int out = open("output.txt",O_CREAT|O_WRONLY|O_APPEND,0644);
dup2(out,STDOUT_FILENO);
close(out);
close(fd[1]);
dup2(fd[0],STDIN_FILENO);
close(fd[0]);
execlp("wc","wc",NULL);
assert(0);
}
close(fd[0]);
close(fd[1]);
wait(NULL);
wait(NULL);
return 0;
}
+2
View File
@@ -0,0 +1,2 @@
3 3 23
3 3 23
+236
View File
@@ -0,0 +1,236 @@
2378899 execve("/usr/bin/bash", ["bash", "-c", "wc"], 0x7ffd19ff1e48 /* 37 vars */) = 0
2378899 brk(NULL) = 0x556d8430c000
2378899 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd22d4fc000
2378899 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v4/libreadline.so.8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v4/", 0x7fff64be3e20, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v3/libreadline.so.8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v3/", 0x7fff64be3e20, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v2/libreadline.so.8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v2/", 0x7fff64be3e20, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/libreadline.so.8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=245911, ...}) = 0
2378899 mmap(NULL, 245911, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd22d4bf000
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/usr/lib/libreadline.so.8", O_RDONLY|O_CLOEXEC) = 3
2378899 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
2378899 fstat(3, {st_mode=S_IFREG|0755, st_size=367640, ...}) = 0
2378899 mmap(NULL, 371816, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd22d464000
2378899 mmap(0x7fd22d47a000, 204800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7fd22d47a000
2378899 mmap(0x7fd22d4ac000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x48000) = 0x7fd22d4ac000
2378899 mmap(0x7fd22d4b5000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x51000) = 0x7fd22d4b5000
2378899 mmap(0x7fd22d4be000, 3176, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd22d4be000
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
2378899 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200y\2\0\0\0\0\0"..., 832) = 832
2378899 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
2378899 fstat(3, {st_mode=S_IFREG|0755, st_size=2186528, ...}) = 0
2378899 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
2378899 mmap(NULL, 2210672, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd22d200000
2378899 mmap(0x7fd22d224000, 1527808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7fd22d224000
2378899 mmap(0x7fd22d399000, 479232, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x199000) = 0x7fd22d399000
2378899 mmap(0x7fd22d40e000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20d000) = 0x7fd22d40e000
2378899 mmap(0x7fd22d414000, 31600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd22d414000
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/libncursesw.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/lib/libncursesw.so.6", O_RDONLY|O_CLOEXEC) = 3
2378899 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
2378899 fstat(3, {st_mode=S_IFREG|0755, st_size=457936, ...}) = 0
2378899 mmap(NULL, 461920, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd22d18f000
2378899 mmap(0x7fd22d19c000, 294912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0x7fd22d19c000
2378899 mmap(0x7fd22d1e4000, 90112, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x55000) = 0x7fd22d1e4000
2378899 mmap(0x7fd22d1fa000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6a000) = 0x7fd22d1fa000
2378899 close(3) = 0
2378899 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd22d462000
2378899 arch_prctl(ARCH_SET_FS, 0x7fd22d462b80) = 0
2378899 set_tid_address(0x7fd22d4631a8) = 2378899
2378899 set_robust_list(0x7fd22d462e60, 24) = 0
2378899 rseq({cpu_id_start=0, cpu_id=RSEQ_CPU_ID_UNINITIALIZED, rseq_cs=NULL, flags=0, node_id=0, mm_cid=0, slice_ctrl={request=0, granted=0, __reserved=0}, __reserved=0}, 33, 0, 0x53053053) = 0
2378899 mprotect(0x7fd22d40e000, 16384, PROT_READ) = 0
2378899 mprotect(0x7fd22d1fa000, 20480, PROT_READ) = 0
2378899 mprotect(0x7fd22d4b5000, 12288, PROT_READ) = 0
2378899 mprotect(0x556d658de000, 12288, PROT_READ) = 0
2378899 mprotect(0x7fd22d540000, 8192, PROT_READ) = 0
2378899 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
2378899 getrandom("\xda\xea\x89\xee\xf0\xee\xf2\x49", 8, GRND_NONBLOCK) = 8
2378899 munmap(0x7fd22d4bf000, 245911) = 0
2378899 openat(AT_FDCWD, "/dev/tty", O_RDWR|O_NONBLOCK) = 3
2378899 close(3) = 0
2378899 brk(NULL) = 0x556d8430c000
2378899 brk(0x556d8432d000) = 0x556d8432d000
2378899 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=3064416, ...}) = 0
2378899 mmap(NULL, 3064416, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd22ce00000
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=27010, ...}) = 0
2378899 mmap(NULL, 27010, PROT_READ, MAP_SHARED, 3, 0) = 0x7fd22d4f5000
2378899 close(3) = 0
2378899 futex(0x7fd22d4136ec, FUTEX_WAKE_PRIVATE, 2147483647) = 0
2378899 getresuid([1000], [1000], [1000]) = 0
2378899 getresgid([984], [984], [984]) = 0
2378899 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
2378899 rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
2378899 rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
2378899 rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
2378899 rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
2378899 rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
2378899 rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
2378899 rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
2378899 rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 uname({sysname="Linux", nodename="portabledenis", ...}) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT/2026/BUT2FI_2026_R3.05/td/td6/correction2", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis", {st_mode=S_IFDIR|0711, st_size=20480, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT/2026", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT/2026/BUT2FI_2026_R3.05", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT/2026/BUT2FI_2026_R3.05/td", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT/2026/BUT2FI_2026_R3.05/td/td6", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT/2026/BUT2FI_2026_R3.05/td/td6/correction2", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/home/denis/GIT/2026/BUT2FI_2026_R3.05/td/td6", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 getpid() = 2378899
2378899 getppid() = 2378897
2378899 newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/usr/local/sbin/bash", 0x7fff64be4670, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/usr/local/bin/bash", 0x7fff64be4670, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/usr/bin/bash", {st_mode=S_IFREG|0755, st_size=1195144, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/usr/bin/bash", {st_mode=S_IFREG|0755, st_size=1195144, ...}, 0) = 0
2378899 geteuid() = 1000
2378899 getegid() = 984
2378899 getuid() = 1000
2378899 getgid() = 984
2378899 access("/usr/bin/bash", X_OK) = 0
2378899 newfstatat(AT_FDCWD, "/usr/bin/bash", {st_mode=S_IFREG|0755, st_size=1195144, ...}, 0) = 0
2378899 geteuid() = 1000
2378899 getegid() = 984
2378899 getuid() = 1000
2378899 getgid() = 984
2378899 access("/usr/bin/bash", R_OK) = 0
2378899 getpid() = 2378899
2378899 getppid() = 2378897
2378899 getpid() = 2378899
2378899 getppid() = 2378897
2378899 getpgrp() = 2378897
2378899 ioctl(2, TIOCGPGRP, [2378897]) = 0
2378899 rt_sigaction(SIGCHLD, {sa_handler=0x556d65821240, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 prlimit64(0, RLIMIT_NPROC, NULL, {rlim_cur=127118, rlim_max=127118}) = 0
2378899 openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=2998, ...}) = 0
2378899 read(3, "# Locale name alias data base.\n#"..., 4096) = 2998
2378899 read(3, "", 4096) = 0
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/usr/share/locale/fr_FR.UTF-8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr_FR.utf8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr_FR/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr.UTF-8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr.utf8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr/LC_MESSAGES/bash.mo", O_RDONLY) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=197028, ...}) = 0
2378899 mmap(NULL, 197028, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd22d4c4000
2378899 close(3) = 0
2378899 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
2378899 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
2378899 newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/usr/local/sbin/wc", 0x7fff64be4480, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/usr/local/bin/wc", 0x7fff64be4480, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/usr/bin/wc", {st_mode=S_IFREG|0755, st_size=71992, ...}, 0) = 0
2378899 newfstatat(AT_FDCWD, "/usr/bin/wc", {st_mode=S_IFREG|0755, st_size=71992, ...}, 0) = 0
2378899 geteuid() = 1000
2378899 getegid() = 984
2378899 getuid() = 1000
2378899 getgid() = 984
2378899 access("/usr/bin/wc", X_OK) = 0
2378899 newfstatat(AT_FDCWD, "/usr/bin/wc", {st_mode=S_IFREG|0755, st_size=71992, ...}, 0) = 0
2378899 geteuid() = 1000
2378899 getegid() = 984
2378899 getuid() = 1000
2378899 getgid() = 984
2378899 access("/usr/bin/wc", R_OK) = 0
2378899 rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd22d23e270}, {sa_handler=0x556d65821240, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fd22d23e270}, 8) = 0
2378899 execve("/usr/bin/wc", ["wc"], 0x556d8431a480 /* 37 vars */) = 0
2378899 brk(NULL) = 0x5562f073b000
2378899 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efc486cf000
2378899 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v4/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v4/", 0x7ffc2b110e50, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v3/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v3/", 0x7ffc2b110e50, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v2/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/glibc-hwcaps/x86-64-v2/", 0x7ffc2b110e50, 0) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/opt/pin/intel64/runtime/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 newfstatat(AT_FDCWD, "/opt/pin/intel64/runtime/", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
2378899 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=245911, ...}) = 0
2378899 mmap(NULL, 245911, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7efc48692000
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
2378899 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200y\2\0\0\0\0\0"..., 832) = 832
2378899 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
2378899 fstat(3, {st_mode=S_IFREG|0755, st_size=2186528, ...}) = 0
2378899 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
2378899 mmap(NULL, 2210672, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7efc48400000
2378899 mmap(0x7efc48424000, 1527808, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7efc48424000
2378899 mmap(0x7efc48599000, 479232, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x199000) = 0x7efc48599000
2378899 mmap(0x7efc4860e000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20d000) = 0x7efc4860e000
2378899 mmap(0x7efc48614000, 31600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7efc48614000
2378899 close(3) = 0
2378899 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7efc4868f000
2378899 arch_prctl(ARCH_SET_FS, 0x7efc4868f740) = 0
2378899 set_tid_address(0x7efc4868fd68) = 2378899
2378899 set_robust_list(0x7efc4868fa20, 24) = 0
2378899 rseq({cpu_id_start=0, cpu_id=RSEQ_CPU_ID_UNINITIALIZED, rseq_cs=NULL, flags=0, node_id=0, mm_cid=0, slice_ctrl={request=0, granted=0, __reserved=0}, __reserved=0}, 33, 0, 0x53053053) = 0
2378899 mprotect(0x7efc4860e000, 16384, PROT_READ) = 0
2378899 mprotect(0x5562b5f0e000, 4096, PROT_READ) = 0
2378899 mprotect(0x7efc48713000, 8192, PROT_READ) = 0
2378899 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
2378899 getrandom("\xe1\x24\x5e\x49\x58\x85\x91\x93", 8, GRND_NONBLOCK) = 8
2378899 munmap(0x7efc48692000, 245911) = 0
2378899 brk(NULL) = 0x5562f073b000
2378899 brk(0x5562f075c000) = 0x5562f075c000
2378899 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=3064416, ...}) = 0
2378899 mmap(NULL, 3064416, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7efc48000000
2378899 close(3) = 0
2378899 fstat(0, {st_mode=S_IFREG|0644, st_size=636, ...}) = 0
2378899 openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=2998, ...}) = 0
2378899 read(3, "# Locale name alias data base.\n#"..., 4096) = 2998
2378899 read(3, "", 4096) = 0
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/usr/share/locale/fr_FR.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr_FR.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr_FR/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (Aucun fichier ou dossier de ce nom)
2378899 openat(AT_FDCWD, "/usr/share/locale/fr/LC_MESSAGES/coreutils.mo", O_RDONLY) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=399390, ...}) = 0
2378899 mmap(NULL, 399390, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7efc4862d000
2378899 close(3) = 0
2378899 openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) = 3
2378899 fstat(3, {st_mode=S_IFREG|0644, st_size=27010, ...}) = 0
2378899 mmap(NULL, 27010, PROT_READ, MAP_SHARED, 3, 0) = 0x7efc486c8000
2378899 close(3) = 0
2378899 futex(0x7efc486136ec, FUTEX_WAKE_PRIVATE, 2147483647) = 0
2378899 fadvise64(0, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
2378899 read(0, "#include <stdio.h>\n#include <uni"..., 262144) = 636
2378899 read(0, "", 262144) = 0
2378899 fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(0x88, 0xd), ...}) = 0
2378899 write(1, " 41 64 636\n", 12) = 12
2378899 close(0) = 0
2378899 close(1) = 0
2378899 close(2) = 0
2378899 exit_group(0) = ?
2378899 +++ exited with 0 +++
BIN
View File
Binary file not shown.
+3 -1
View File
@@ -62,8 +62,10 @@ Les processus fils, à la création, ne savent pas quelle tranche ils doivent so
2. On rappelle que l'écriture dans un tube est atomique jusqu'à `PIPE_BUF`.
3. Écrire le programme correspondant.
#### Ex3
Testez le programme de l'exercice 3 du td6 (Ératosthène + pipe)
#### Ex4
Il s'agit d'un [exercice](./src/billes.c) classique de synchronisation. Des billes, dans une zone rectangulaire, se déplacent en rebodissant
sur les parois et les unes sur les autres. Chaque bille est un processus. L'état global est une zone partagée, protégée
en écriture par un sémaphore (cf cours).