Untitled
Never
//Программе передается единственный аргумент - начальное значение 0<N≤100. //Необходимо создать два потока: //Принимает число, уменьшает его значение на 3, выводит его на стандартный поток вывода, и передает другому потоку. //Принимает число, увеличивает его значение на 5, выводит его на стандартный поток вывода, и передает другому потоку. //Начально значение передается первому потоку. //Взаимодействие прекращается, когда значение будет равно 0, либо станет строго больше 100. //Последний поток, который получит число 0 или число >100, должен вывести его на стандартный поток вывода, и завершить работу. //Для передачи чисел между потоками используйте пару сокетов (man socketpair). #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #define terminate_condition(r) (r > 100 || r == 0) void* child(void* arg) { int socket = *(int*) arg; int recv_num; while(1) { read(socket, &recv_num, sizeof(recv_num)); if(terminate_condition(recv_num)) { printf("%d\n", recv_num); return NULL; } recv_num += 5; printf("%d\n", recv_num); write(socket, &recv_num, sizeof(recv_num)); if (terminate_condition(recv_num)) return NULL; } } void parent(int socket, int recv_num, pthread_t child) { write(socket, &recv_num, sizeof(recv_num)); while(1) { write(socket, &recv_num, sizeof(recv_num)); if (terminate_condition(recv_num)) return; read(socket, &recv_num, sizeof(recv_num)); if(terminate_condition(recv_num)) { printf("%d\n", recv_num); return; } recv_num -= 3; printf("%d\n", recv_num); } } void run(int start_value) { int fd[2]; socketpair(PF_LOCAL, SOCK_STREAM, 0, fd); pthread_t thread; pthread_create(&thread, NULL, child, &fd[1]); parent(fd[0], start_value, thread); } int main(int argc, char* argv[]) { int start_value; sscanf(argv[1], "%d", &start_value); run(start_value); }
Raw Text
-
https://tworhttps://twor.microsoftcrmportals.com/forums/support-forum/6cf2361f-8e00-ef11-a73d-6045bd
9 min ago
-
asdfgndasfdgfhgh
11 min ago
-
my friend gave me a present
30 min ago
-
Untitled
33 min ago
-
Nomacasi
34 min ago
-
DLF Magnolias Service Apartments in Gurgaon
51 min ago
-
My porn casting, when I venture into the industry. COMPLETE VIDEO Kylei Ellish y William Vegas.
59 min ago
-
Untitled
1 hour ago
-
Lustful Latina Julia Cruz Picked Up By Two Hunks For Crazy Threesome - CARNE DEL MERCADO
1 hour ago
-
etfgcverds
1 hour ago