8.13号作业

1.

#include <string.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>


#define FIFO_PATH "/home/gec/my_fifo"

int main()
{
    //判断文件是否存在
     int access_ret = access(FIFO_PATH, F_OK);
     //如果返回值不等于0,就代表文件不存在,就创建
     if(access_ret !=0)
     {
         //1.创建有名管道
        int ret =  mkfifo(FIFO_PATH, 0777);//1.共享文件夹是创建不了管道文件的,windos是不支持管道文件的
                                    //2.管道文件只能创建在Linux的目录下,建议大家创建在家目录,建议用chmod修改权限
        if(-1 == ret)
        {
            perror("creat fifo failed");
            return -1;
        }
     }
    
    //2.打开管道文件
    int fd = open(FIFO_PATH,O_RDONLY);
    if(-1 == fd)
    {
        perror("open fifo failed");
        return -1;
    }
    //3.往管道文件里读
    char *buf = malloc(100);
    while(1)
    {
        memset(buf,0,100);
        
        read(fd,buf,100);
        
        printf("jack:%s\n",buf);
        
        if(strcmp(buf ,"byebye\n")==0)
        {
            break;
        }
    }
}
2.

#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>

int main() 
 {
    const char *fifo_name = "/tmp/myfifo";
    int ret;

    // 尝试创建 FIFO
    ret = mkfifo(fifo_name, 0777);
    if (ret == -1) 
    {
        perror("Failed to create FIFO");
        // 这里可以根据错误类型采取不同的措施
        return -1;
    }
     else(ret==0)
     {
    printf("FIFO created successfully.\n");

    return 0;
    }
}

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 查询各位学生的学、班级和姓名。 ``` SELECT 学, 班级, 姓名 FROM 学生表; ``` 2. 查询课程的全部信息。 ``` SELECT * FROM 课程表; ``` 3. 查询数据库中有哪些专业班级。 ``` SELECT DISTINCT 专业班级 FROM 学生表; ``` 4. 查询学时数大于60的课程信息。 ``` SELECT * FROM 课程表 WHERE 学时数 > 60; ``` 5. 查询在1986年出生的学生的学、姓名和出生日期。 ``` SELECT 学, 姓名, 出生日期 FROM 学生表 WHERE 出生日期 LIKE '1986%'; ``` 6. 查询三次作业的成绩都在80分以上的学、课程。 ``` SELECT 学, 课程 FROM 学生作业表 WHERE 作业1成绩 >= 80 AND 作业2成绩 >= 80 AND 作业3成绩 >= 80; ``` 7. 查询姓张的学生的学、姓名和专业班级。 ``` SELECT 学, 姓名, 专业班级 FROM 学生表 WHERE 姓名 LIKE '张%'; ``` 8. 查询05级的男生信息。 ``` SELECT * FROM 学生表 WHERE 班级 LIKE '05%' AND 性别 = '男'; ``` 9. 查询没有作业成绩的学和课程。 ``` SELECT 学, 课程 FROM 学生作业表 WHERE 作业1成绩 IS NULL AND 作业2成绩 IS NULL AND 作业3成绩 IS NULL; ``` 10. 查询学为0538的学生的作业1总分。 ``` SELECT SUM(作业1成绩) AS 作业1总分 FROM 学生作业表 WHERE 学 = '0538'; ``` 11. 查询选修了K001课程的学生人数。 ``` SELECT COUNT(DISTINCT 学) AS 学生人数 FROM 学生作业表 WHERE 课程 = 'K001'; ``` 12. 查询数据库中共有多少个班级。 ``` SELECT COUNT(DISTINCT 班级) AS 班级数 FROM 学生表; ``` 13. 查询选修三门以上(含三门)课程的学生的学作业1平均分、作业2平均分和作业3平均分。 ``` SELECT 学, AVG(作业1成绩) AS 作业1平均分, AVG(作业2成绩) AS 作业2平均分, AVG(作业3成绩) AS 作业3平均分 FROM 学生作业表 GROUP BY 学 HAVING COUNT(DISTINCT 课程) >= 3; ``` 14. 查询于兰兰的选课信息,列出学、姓名、课程名(使用两种连接查询的方式)。 ``` -- 内连接查询 SELECT 学生表.学, 姓名, 课程名 FROM 学生表 INNER JOIN 学生作业表 ON 学生表.学 = 学生作业表.学 INNER JOIN 课程表 ON 学生作业表.课程 = 课程表.课程 WHERE 姓名 = '于兰兰'; -- 左连接查询 SELECT 学生表.学, 姓名, IFNULL(课程名, '未选修') AS 课程名 FROM 学生表 LEFT JOIN 学生作业表 ON 学生表.学 = 学生作业表.学 LEFT JOIN 课程表 ON 学生作业表.课程 = 课程表.课程 WHERE 姓名 = '于兰兰'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值