8.7(Day 3)IO进程线程

一、作业

第一题: 使用read函数读取一个文件中的所有内容 使用printf函数将读取到的内容,输出到终端 以及 写入另一个文件中

代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>

typedef struct sockaddr_in addr_in_t;
typedef struct sockaddr addr_t;
typedef struct sockaddr_un addr_un_t;
int main(int argc, const char *argv[])
{
	int fd = open("./jjd.txt", O_RDONLY);
	//建立并打开一个新的文本文件-->jj.txt
	int fd1 = open("jj.txt", O_WRONLY | O_TRUNC | O_CREAT, 0666);

	while(1)
	{
		// 循环将文件中的内容读出写入buf数组中
		char buf[16]={0};
		int res = read(fd,buf,15);
		if(res == 0){break;}
		printf("%s",buf);
		fflush(stdout);

		int t = dup(STDOUT_FILENO);
		dup2(fd1,STDOUT_FILENO);
		printf("%s",buf);
		fflush(stdout);
		dup2(t,STDOUT_FILENO);
	//	printf("%d\n",t);
	}
	
	close(fd);
	close(fd1);
	return 0;
}

系统运行效果:

第二题: 使用stat函数判断一个文件是否拥有 用户可写、同组人可写、其他组人可写权限 如果同时拥有上述3个权限,则关闭上述3个权限(使用chmod函数,自己查看man手册并使用,很简单的一个函数),如果上述3个权限有缺少,则补全权限

代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>

typedef struct sockaddr_in addr_in_t;
typedef struct sockaddr addr_t;
typedef struct sockaddr_un addr_un_t;
int main(int argc, const char *argv[])
{
	struct stat buf = {0};
	stat(argv[1],&buf);
	mode_t jj = buf.st_mode;
	if((jj | S_IWUSR | S_IWGRP | S_IWOTH) == jj)
	{
		printf("everyone has w permission");
		jj = jj &~(S_IWUSR | S_IWGRP | S_IWOTH);
		chmod(argv[1],jj);
	}
	else
	{
		jj = (jj | S_IWUSR | S_IWGRP | S_IWOTH);
		chmod(argv[1],jj);
	}
	return 0;
}

系统运行结果如下:

二、思维导图

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Proteus 8.7 SP3是一款电子电路仿真软件,下面是安装教程: 1. 下载Proteus 8.7 SP3安装包并解压缩。 2. 运行“Proteus 8.7 SP3 Setup.exe”文件,选择“安装Proteus 8 Professional”选项。 3. 在安装向导中,选择安装路径和组件,然后点击“下一步”。 4. 在许可协议页面上,阅读并接受协议,然后点击“下一步”。 5. 在安装选项页面上,选择需要安装的组件,然后点击“下一步”。 6. 在安装位置页面上,选择安装路径,然后点击“下一步”。 7. 在开始安装页面上,点击“安装”按钮开始安装。 8. 等待安装完成后,点击“完成”按钮退出安装向导。 9. 运行Proteus软件,输入许可证号码,然后点击“激活”按钮。 10. 输入激活码,然后点击“激活”按钮完成激活。 安装完成后,您就可以使用Proteus 8.7 SP3进行电路仿真和设计了。 ### 回答2: Proteus8.7 sp3是一款非常优秀的电子设计自动化软件,由于其功能强大,普遍受到广大电子工程师的喜爱和使用。安装Proteus8.7 sp3可以提高电子设计的效率和精度,因此这是一项必备的任务。下面是Proteus8.7 sp3安装教程的详细步骤: 第一步:下载Proteus8.7 sp3软件安装包,这可以在官方网站或相关电子工程网站上完成。 第二步:双击打开软件安装包,选择要安装的语言,点击下一步。 第三步:在下一个页面中,需要同意软件许可协议,勾选同意并点击下一步。 第四步:在接下来的页面中,选择要安装的组件。通常,建议使用默认选项,这样就可以安装所有组件,以便在实际使用中获得最佳的工作效果。点击下一步进入下一个页面。 第五步:选择安装路径。一般来说,保持默认设置即可,否则可能会导致安装失败或其他问题。 第六步:请稍候,安装程序会自动进行。这可能需要一些时间,完全取决于您计算机的性能和安装程序的大小。 第七步:安装完成后,双击打开软件并开始使用。在使用之前,您可以在官方网站或其他方面获得有关如何使用Proteus8.7 sp3的示例和文档。 总结:这就是Proteus8.7 sp3安装教程的详细过程,虽然看起来很简单,但确保按照步骤进行可以避免潜在的安装问题。如果您在安装或使用过程中遇到任何问题,请参考相关网站的解决方案或联系技术支持人员。 ### 回答3: Proteus 8.7 SP3是一款功能强大的电子电路设计和仿真软件,能够帮助用户完成从设计到测试的整个过程。下面我们将介绍如何安装Proteus 8.7 SP3软件。 步骤一:下载Proteus 8.7 SP3软件安装包 首先,需要从官方网站或者其他可信的下载来源下载Proteus 8.7 SP3软件安装包,下载完成后解压缩。 步骤二:安装Proteus 8.7 SP3软件 打开解压后的软件安装包,找到setup.exe文件并双击打开。在安装向导界面中点击“下一步”,接着勾选“同意”协议并继续。在下一步中选择需要安装的组件,可以选择全部或者只选择需要的组件进行安装。接着点击“下一步”开始安装。 步骤三:安装Proteus 8.7 SP3的库文件 在安装过程中可能会提示安装库文件,这些库文件是Proteus中电子元器件的模型,需要根据需求选择安装。下载完成后将该文件复制到C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\Libraries\下,其中x86可能因计算机配置而有所不同。 步骤四:安装Proteus 8.7 SP3的许可证 安装完成后会出现“Proteus 8 Professional安装”界面,需要选择“license key (Proteus 8 Professional)”并点击“下一步”。接着输入许可证文件的路径,一般是C:\ProgramData\Labcenter Electronics\Proteus 8 Professional\License\下的P8Professional.lic文件。输入后点击“下一步”并完成该步骤。 步骤五:启动Proteus 8.7 SP3 完成安装后,打开Proteus 8.7 SP3软件,输入许可证文件,即可开始使用该软件进行电子电路设计和仿真。 总结: 以上就是Proteus 8.7 SP3软件安装教程。总的来说,安装步骤并不复杂,只需要按照提示逐步进行就可以了。在安装过程中注意备份文件,以免丢失数据。同时,建议在安装前先了解Proteus 8.7 SP3软件的版本特性和系统要求,以便顺利进行安装和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值