为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 100
讨论题

慕盖茨7572105 的学生作业:

#include #include #include typedef int datatype_t; typedef struct node { datatype_t data; struct node *next; }loopnode_t; //1.创建一个新的链表, 为第一个结点在堆区分配空间 loopnode_t *create_empty_looplist(datatype_t data) { loopnode_t *head = NULL; head = (loopnode_t *)malloc(sizeof(loopnode_t)); if(NULL == head) { printf("malloc is fail!\n"); return NULL; } memset(head, 0, sizeof(loopnode_t)); head->data = data; head->next = head; return head; } //2.第二个结点开始用尾插法 loopnode_t *insert_tail_looplist(loopnode_t *p, datatype_t data) { //为新结点在堆区申请空间 loopnode_t *temp = (loopnode_t *)malloc(sizeof(loopnode_t)); if(NULL == temp) { printf("malloc is fail!\n"); return NULL; } //将data存入结点 temp->data = data; //将新结点temp插入p后 temp->next = p->next; p->next = temp; //将p设为最后一个结点 p = temp; return p; } //判空 int is_empty_looplist(loopnode_t *head) { return NULL == head->next? 1: 0; } //输出链表中的内容 void printf_data_looplist(loopnode_t *tail) { loopnode_t *p = tail; do{ printf("%d ", p->next->data); p = p->next; }while(p != tail); printf("\n"); return ; } void josephu(loopnode_t *p, int n, int k, int m) { int i = 0, j = 0; loopnode_t *q = NULL; for(i=1;inext; } for(i=1;inext->data); q = p->next; p->next = p->next->next; free(q); p = p->next; } printf("\n"); } int main() { loopnode_t *p = NULL; int n = 0, k = 0, m = 0, i = 0; int ret = 0; datatype_t data; printf("Please input insert data number : "); scanf("%d", &n); printf("Please input %d data : ", n); for(i=0;i

得分 100
学习任务

犹豫就会败北~ 的学生作业:

#include #include #include #include #include #include #include #include #include #include #define MAXEVENTS 10 #define FIFOFILENAME "./fifo_test" // 使用 epoll 监听有名管道,当有名管道有数据时,读取数据并打印 int main() { int epfd; int ret; pid_t cpid; int fd; char buffer[1024] = {0}; ret = access(FIFOFILENAME, F_OK); if (ret == -1) { mkfifo(FIFOFILENAME, 0644); } fd = open(FIFOFILENAME, O_RDWR); if (fd == -1) { perror("[ERROR] open failed: "); exit(EXIT_FAILURE); } cpid = fork(); if (cpid == -1) { perror("[ERROR] perror() failed: "); exit(EXIT_FAILURE); } else if (cpid == 0) { while (1) { printf("please input: "); fgets(buffer, sizeof(buffer), stdin); buffer[strlen(buffer) - 1] = '\0'; write(fd, buffer, strlen(buffer) + 1); if (strncmp(buffer, "quit", 4) == 0) { break; } } exit(EXIT_SUCCESS); } epfd = epoll_create1(0); if (epfd == -1) { perror("[ERROR] epoll_create1() failed"); exit(EXIT_FAILURE); } struct epoll_event ev, events[MAXEVENTS]; int nfds; ev.events = EPOLLIN; ev.data.fd = fd; ret = epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &ev); if (ret == -1) { perror("[ERROR] epoll_ctl() failed: "); exit(EXIT_FAILURE); } for (;;) { char r_buffer[1024] = {0}; nfds = epoll_wait(epfd, events, MAXEVENTS, 3000); if (nfds == -1) { perror("[ERROR] epoll_wait() failed: "); exit(EXIT_FAILURE); } else if (nfds == 0) { printf("Timeout.\n"); } else if (nfds > 0) { for (int i = 0; i < nfds; i++) { if (events[i].data.fd == fd) { read(fd, r_buffer, sizeof(r_buffer)); printf("r_buffer: %s\n", r_buffer); } } if (strncmp(r_buffer, "quit", 4) == 0) { break; } } } waitpid(cpid,NULL,0); close(fd); return 0; }

得分 100
学习任务
得分 100
学习任务

犹豫就会败北~ 的学生作业:

#include #include #include #include #include #include #include #include #include #define FIFOFILENAME "./fifo_test" // 使用 select 监听有名管道,当有名管道有数据时,读取数据并打印 int main() { int ret; pid_t cpid; int s_ret; char buffer[1024] = {0}, r_buffer[1024] = {0}; fd_set readfds, readfds_tmp; struct timeval tv = {3, 0}, tv_tmp; int fd; ret = access(FIFOFILENAME, F_OK); if (ret == -1) { mkfifo(FIFOFILENAME, 0644); } fd = open(FIFOFILENAME, O_RDWR); if (fd == -1) { perror("[ERROR] open failed: "); exit(EXIT_FAILURE); } cpid = fork(); if (cpid == -1) { perror("[ERROR] perror() failed: "); exit(EXIT_FAILURE); } else if (cpid == 0) { while (1) { printf("please input: "); fgets(buffer, sizeof(buffer), stdin); buffer[strlen(buffer) - 1] = '\0'; write(fd, buffer, strlen(buffer) + 1); if (strncmp(buffer, "quit", 4) == 0) { break; } } exit(EXIT_SUCCESS); } FD_ZERO(&readfds); FD_SET(fd, &readfds); for (;;) { tv_tmp = tv; readfds_tmp = readfds; s_ret = select(fd + 1, &readfds_tmp, NULL, NULL, &tv_tmp); if (s_ret == -1) { perror("[ERRPR] select() failed: "); exit(EXIT_FAILURE); } else if (s_ret == 0) { printf("timeout.\n"); } else if (s_ret > 0) { if (FD_ISSET(fd, &readfds_tmp)) { read(fd, r_buffer, 1024); printf("r_buffer: %s\n", r_buffer); if (strncmp(r_buffer, "quit", 4) == 0) { break; } } } } waitpid(cpid, NULL, 0); return 0; }

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号