📄 pthread_create.c
字号:
#include <stdio.h>#include <pthread.h>#define NUM 1000static pthread_mutex_t LOCK, *m_LOCK = &LOCK;void *hping(int *index) { char cmd_buff[512]; int *index2; index2 = (int *)index; if (*index2 == 1) { sprintf(cmd_buff, "hping2 -1 -a 192.168.255.233 192.168.1.33 &"); //sprintf(cmd_buff, ""); } else if (*index2 <= 255) { sprintf(cmd_buff, "hping2 -1 -a 192.168.252.%d 192.168.1.33 &", *index2); } else if (*index2 <= 511) { sprintf(cmd_buff, "hping2 -1 -a 192.168.253.%d 192.168.1.33 &", (*index2-256)); } else if (*index2 <= 766) { sprintf(cmd_buff, "hping2 -1 -a 192.168.254.%d 192.168.1.33 &", (*index2-512)); } else { sprintf(cmd_buff, "hping2 -1 -a 192.168.255.%d 192.168.1.33 &", (*index2-768)); } system(cmd_buff); return NULL;}int main(){ int i = 1, err = 0; int b[NUM]; int start, end; int pid1, pid2, pid3, pid4, status; pthread_t ptid[NUM]; if ((pid1 = fork()) == 0) { if ((pid2 = fork()) == 0) { if ((pid3 = fork()) == 0) { if ((pid4 = fork()) == 0) { printf("\n***(5)***\n"); start = 801; end = 1000; } else { waitpid(pid4, &status, 0); printf("\n***(4)***\n"); start = 601; end = 800; } } else { waitpid(pid3, &status, 0); printf("\n***(3)***\n"); start = 401; end = 600; } } else { waitpid(pid2, &status, 0); printf("\n***(2)***\n"); start = 201; end = 400; } } else { waitpid(pid1, &status, 0); printf("\n***(1)***\n"); start = 1; end = 200; } for (i = start ; i <= end ; i++) { b[i-1] = i; err = pthread_create(&ptid[i-1], NULL, (void *)hping, &b[i-1]); //printf("\n%d\n", err); } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -