精华内容
下载资源
问答
  • 最简单的字符串数据追加写入文件 2 代码实现 #include <stdio.h> #include <string.h> void write_data_to_file(const char *path, char *str) { FILE *fd = fopen(path...

    1 问题

    把最简单的字符串数据追加写入文件

     

     

     

     

    2 代码实现

    #include <stdio.h>
    #include <string.h>
    
    void write_data_to_file(const char *path, char *str)
    {
    	FILE *fd = fopen(path, "a+");
    	if (fd == NULL) 
    	{
    		printf("fd is NULL and open file fail\n");
    		return;
    	}
    	printf("fd != NULL\n");
    	if (str && str[0] != 0) 
    	{
    		fwrite(str, strlen(str), 1, fd);
    		char *next = "\n";
    		fwrite(next, strlen(next), 1, fd);
    	}
    	fclose(fd);
    }
    
    int main()
    {
    	char *path = "/home/chenyu/Desktop/linux/wf/c.txt";
    	char *str = "chenyu";
    	char *str1 = "hell word";
    	char *str2 = "write data to file";
    	write_data_to_file(path, str);
    	write_data_to_file(path, str1);
    	write_data_to_file(path, str2);
    	return 0;	
    }

     

     

     

    3 运行结果

    gcc -g write.c -o write
    ./write
    
    vim c.txt
    
    chenyu
    hell word
    write data to file

     

    展开全文
  • Linux输出重定向 >> 文件 2>&1

    万次阅读 多人点赞 2019-05-14 15:30:45
    linux中用0代表标准输入,1代表标准正确输出,2代表标准错误输出。 输出重定向:正常输出是内容输出到显示器上,而输出重定向是内容输出到文件中 例如:ifconfig > test.log 即ifconfig执行显示的内容写入...

    输出即把相关对象通过输出设备(显示器等)显示出来,输出又分正确输出和错误输出
    一般情况下标准输出设备为显示器,标准输入设备为键盘。
    在这里插入图片描述
    linux中用0代表标准输入,1代表标准正确输出,2代表标准错误输出。
    输出重定向:正常输出是把内容输出到显示器上,而输出重定向是把内容输出到文件中
    在这里插入图片描述
    例如:ifconfig > test.log 即把ifconfig执行显示的内容写入test.log.当前页面不再显示执行结果。
    注意:错误输出重定向>/>>后边没有空格
    在这里插入图片描述
    命令 >> 文件 2>&1 和 命令 &>>文件 两个命令作用相同
    系统有个常见用法 ls &>/dev/null 正确输出或错误输出结果都不要。(null可以理解为黑洞或垃圾站)
    命令>>文件1 2>>文件2 正确日志和错误日志分开保存

    例:nohup java -jar /usr/sbin/lb-agent.jar >>/var/log/lb-agent.log 2>&1 &
    将jar执行的结果写入到lb-agent.log中
    在命令最后加上&符号,表示让这个进程到后台去执行,这样立刻返回到提示符状态,我们可以接着做下面的事。如:command &。
    这种“后台”进程在shell一直打开的情况下是没有问题的,如果我们关了shell窗口甚至退出ssh登录或vnc登录,那么进程自动就结束了。所以如果想退出窗口乃至退出登录仍然保持程序运行,再加上nohup,形如:nohup command 1>output 2>&1 &

    展开全文
  • linux中用0代表标准输入,1代表标准正确输出,2代表标准错误输出。 输出重定向:正常输出是内容输出到显示器上,而输出重定向是内容输出到文件中 例如:ifconfig > test.log 即ifconfig执行显示的内容...

    输出即把相关对象通过输出设备(显示器等)显示出来,输出又分正确输出和错误输出
    一般情况下标准输出设备为显示器,标准输入设备为键盘。

    linux中用0代表标准输入,1代表标准正确输出,2代表标准错误输出。
    输出重定向:正常输出是把内容输出到显示器上,而输出重定向是把内容输出到文件中

    例如:ifconfig > test.log 即把ifconfig执行显示的内容写入test.log.当前页面不再显示执行结果。
    注意:错误输出重定向>/>>后边没有空格

    命令 >> 文件 2>&1 和 命令 &>>文件 两个命令作用相同
    系统有个常见用法 ls &>/dev/null 正确输出或错误输出结果都不要。(null可以理解为黑洞或垃圾站)
    命令>>文件1 2>>文件2 正确日志和错误日志分开保存

    例:nohup java -jar /usr/sbin/lb-agent.jar >>/var/log/lb-agent.log 2>&1 &
    将jar执行的结果写入到lb-agent.log中
    在命令最后加上&符号,表示让这个进程到后台去执行,这样立刻返回到提示符状态,我们可以接着做下面的事。如:command &。
    这种“后台”进程在shell一直打开的情况下是没有问题的,如果我们关了shell窗口甚至退出ssh登录或vnc登录,那么进程自动就结束了。所以如果想退出窗口乃至退出登录仍然保持程序运行,再加上nohup,形如:nohup command 1>output 2>&1 &
     

    展开全文
  • 总述(1)打开文件(2)关闭文件(3)写入文件2.应用(1)创建文件并保存数据(2)通过read函数读取data.txt中保存的数据 1.总述 Linux下一切都是文件 ,对于文件的操作,我们需要用文件操作符来指定。文件一般经过...

    1.总述

    Linux下一切都是文件 ,对于文件的操作,我们需要用文件操作符来指定。文件一般经过创建过程才会分配文件描述符,可以把它理解为方便称呼操作系统创建的文件而赋予的数。

    文件描述符fd 对象
    0 标准输入
    1 标准输出
    2 标准错误

    (1)打开文件

    需要的头文件:#include<sys/types.h>,#include<sys/stat.h>,#include<fcntl.h>
    函数原型:
    int open(const char *path,int flag)

    • 成功时返回文件描述符、失败返回-1
    • path指文件名的字符串地址
    • flag是文件打开模式信息
      在这里插入图片描述
      eg
    	int fd;
    	fd = open("data.txt",O_CREAT|O_WRONLY|O_TRUNC);
    	//文件名为data.txt。必要时创建、只写、删除现有数据 
    	if(fd == -1)	//打开失败 
    		//do something
    

    (2)关闭文件

    所需头文件#include<unistd.h>
    函数原型int close(int fd)

    • 成功时返回0,失败时返回-1
    • fd是需关闭文件的文件描述符

    egclose(fd);

    (3)写入文件

    所需头文件#include<unistd.h>
    函数原型ssize_t write(int fd,const void* buf,size_t nbytes)

    • 成功时返回写入的字节数,失败返回-1
    • fd是文件描述符
    • buf是保存数据的缓冲地址值
    • nbytes 传输数据的字节数
    • ssize_t是通过typedef声明的signed int类型

    eg

    	int fd;
    	char buf[]="Lets go!\n";
    	if(write(fd,buf,sizeof(buf)) == -1)
    		//do something
    

    (4)读取数据

    所需头文件#include<unistd.h>
    函数原型ssize_t read(int fd,void* buf,size_t nbytes);

    • 成功时返回接收的字节数(遇到文件结尾返回0),失败返回-1
    • fd是文件描述符
    • buf是保存接收数据的缓冲地址值
    • nbytes 传输数据的字节数

    2.应用

    (1)创建文件并保存数据

    创建.c文件
    在这里插入图片描述

    touch low_open.c
    

    使用vim编辑

    vim low_open.c 
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<fcntl.h>
    #include<unistd.h>
    void error_handling(char* message);
    
    int main()
    {
    	int fd;
    	char buf[]="Lets go!\n";
    	fd = open("data.txt",O_CREAT|O_WRONLY|O_TRUNC);//必要时创建、只写、删除现有数据 
    	if(fd == -1)						//打开失败 
    		error_handling("open() error");
    	printf("file descriptor: %d \n",fd);//输出文件描述符 
    	if(write(fd,buf,sizeof(buf)) == -1)
    		error_handling("write() error");
    	close(fd);							//使用文件后必须关闭 
    	return 0;
    
    }
    void error_handling(char* message)
    {
    	fputs(message,stderr);//把message写到指定流 
    	fputc('\n',stderr);
    	exit(1);
    }
    

    编译

    gcc low_open.c  -o lopen
    

    运行

    ./lopen
    

    返回的文件描述符是3
    在这里插入图片描述
    此时当前目录下有三个文件ls命令查看,open函数新生成了一个data.txt
    在这里插入图片描述
    查看data.txt

    cat data.txt
    

    在这里插入图片描述

    (2)通过read函数读取data.txt中保存的数据

    同样创建low_read.c编译运行

    #include<stdio.h>
    #include<stdlib.h>
    #include<fcntl.h>
    #include<unistd.h>
    #define BUF_SIZE 100
    void error_handling(char* message);
    int main()
    {
    	int fd;
    	char buf[BUF_SIZE];
    	fd = open("data.txt",O_RDONLY);
    	if(fd == -1)
    		error_handling("open() error");
    	printf("file descriptor: %d \n",fd);
    	if(read(fd,buf,sizeof(buf)) == -1)
    		error_handling("read() error");
    	printf("file data: %s",buf);
    	close(fd);
    	return 0;
    				
    }
    void error_handling(char* message)
    {
    	fputs(message,stderr);
    	fputc('\n',stderr);
    	exit(1);
    }
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • linux底层文件访问

    2020-04-27 16:35:50
    每个运行中的程序称为“进程”。 每个进程一般有3个已经打开的...函数功能:系统调用write缓冲区buf的前count个字节写入文件描述符fd关联的文件里。 参数:fd--文件描述符 buf--缓冲区 count--字节数 返回...
  • 我们有时候会把文件权限设置为777,那么777代表什么呢? 7 = 1 + 2 + 4 就代表有所有权限 777就是拥有者、组用户、其他用户都有所有权限 同理 3 = 1 + 2 表示有写入和执行两个权限 5 = 4 + 1 有读取和执行两个权限 6 ...
  • Linux 文件操作命令

    2021-02-15 14:42:18
    注意:cat 写入文件时,会之前的内容给覆盖掉 more 当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。 缺点:只能够往后面去看,不可以返回去看。 less 1.文本内容查看器,查看文件...
  • Linux中,如何时间写进文件

    千次阅读 2019-10-01 17:38:22
    首先在正式开始之前我们要知道,本次实验中要用到cut命令(切片命令),date命令(查看系统时间命令),echo命令(东西写入文件中),touch 创建文件命令 正文: 1.首先创建文件 [root@localhost ~]# ...
  • linux 修改配置文件

    2021-01-30 09:31:40
    linux 修改配置文件 一、先在配置文件写入内容 strstr:判断子字符串是否是父字符串的子串 如何修改配置文件: (1)找到字符串的开头位置。 (2)从开头位置往后移,移到末尾位置。 (3)修改末尾位置的内容。 ...
  • vim打开某文件是将文件读入内存,理论上内存够大,文件都能打开。或者分割查看文件1、查看文件的前多少行head -1000 ... out.outfile文件的后1000行的内容写入到out.out文件中。3、查看文件的几行到几行sed -n '...
  • Linux文件压缩和打包

    2018-10-31 11:34:10
    6.1压缩打包介绍压缩和打包的意义:1,节省磁盘空间2,节省传输时间3,节省带宽资源常见的压缩文件linux的后缀名是一种约定,而不是固定格式。6.2 gzip压缩工具做实验先生成一个文件在/etc/下查找以conf结尾的文件...
  • 文章目录概述write系统调用read系统调用 概述 每个运行中的程序被称为进程,它有一些与之关联的文件描述符。这是一些小值整数,可以通过它们访问打开的...系统调用write的作用是缓冲区buf的前nbytes个字节写入与...
  • 我们平时所说的格式化磁盘什么的,具体的是怎么个格式化呢,原来就是向磁盘中重新写入一堆有具体格式的数据,即文件系统,这里就以linux常用的ext2为例来介绍: 最近变得懒了,我就偷懒linux c编程一站式学习》...
  • 在配置文件写入服务器地址 列: Host cloud HostName 你的服务器Ip User xxxxx scp命令上传文件 scp 本地路径 user@远程公网ip:远程服务器路径 举个栗子 scp /Users/xsw/Desktop/cover.png abc@111:11.....
  • 比如0是int类型有4个字节就写4个字节,不要变成字符0再写入。...结果1.txt文件中保存字符2,我不是指定二进制方式ios::binary进行输出了吗?为什么还存放字符2呢??这样不行该怎么写呢? 望高手赐教啊,在线等着!
  • 今天我将如何在linux系统搭建nfs服务器的步骤分享出来,供大家参考。 搭建步骤 1、安装nfs所需软件包 yum install rpcbind nfs-utils 2、创建测试文件并赋权限 mkdir /home/test chmod -R 777 /home/test/ cd /...
  • 日志文件对于诊断和解决系统中的问题很有帮助,因为在 Linux 操作系统中运行的程序通常会系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”。此外,当主机遭受袭击时,日志文件还可以...
  • Linux下打开超大文件方法 在Linux下用VIM打开大小几个G、甚至几十个G的文件时,是非常慢的。 这时,我们可以利用下面的方法...上面命令的意思是:slowquery.log文件前10000行的数据写入到temp.log文件中。 2 查看...
  • syslog采用可配置的、统一的系统登记程序,随时从系统各处接受log请求,然后根据/etc/syslog.conf中的预先设定log信息写入相应文件中、邮寄给特定用户或者直接以消息的方式发往控制台。值得注意的是,为了防止入侵...
  • Linux下用VIM打开大小几个G、甚至...# 上面命令的意思是:slowquery.log文件前10000行的数据写入到temp.log文件中。 2 查看文件的后多少行 tail -10000 /var/lib/mysql/info.log > info.log # 上面命令的意思
  • 1、在写入数据时内存与磁盘之间也有一个缓冲区,这种机制降低了磁盘读写次数,提高了读写的效率。 2、但这种机制带来的后果就是磁盘中的数据与实写入的数据不匹配,系统提供了一个函数可以让缓冲区中的数据立即写入...
  • Linux命令--文件系统

    2019-05-25 18:09:12
    作用:强制把文件系统buffer的内容,写入系统磁盘 详解: linux系统为了提高读写磁盘的效率和读数据的速度,会先将数据放在一块buffer中。 1.写数据时,会先将数据放在一块buffer中,写磁盘时不是立即将...
  • 文件操作目录文件相关文件相关的命令查看可执行未见路径的变量查看文件内容命令搜索文件内容命令搜索文件命令写入文件命令(可以用在写入日志上)管道(一个命令的输出通过管道作为另一个命令的输入)软连接其他...
  • Linux下用VIM打开大小几个G、甚至...上面命令的意思是:slowquery.log文件前10000行的数据写入到temp.log文件中。 2 查看文件的后多少行 tail -10000 /var/lib/mysql/slowquery.log > temp.log 上面命令的意思是
  • 关于Linux下的pid文件

    万次阅读 2018-03-10 15:26:12
    1.pid文件的内容用cat命令查看,可以看到内容只有一行,记录了该进程的ID2.pid文件的作用防止启动多个进程副本3.pid文件的原理进程运行后会给.pid文件加一个文件锁,只有获得pid文件(固定路径固定文件名)写入权限(F_...
  • 1 硬盘上一般都有一些缓冲区以此来提高数据的写入效率,操作系统写入数据其实只是写入缓冲区,知道缓冲区满才排队写入到磁盘中。 2 这种操作降低了写入的次数,但是提高了数据写入的延时,导致缓冲区的数据与磁盘的...
  • 创建文件file1写入字符串“abcdefghijklmn”; //2.创建文件file2写入字符串“ABCDEFGHIJKLMN”; //3.读取file1中的内容,写入file2,使file2中的字符串内容为“abcdefghijklmn ABCDEFGHIJKLMN” 创建新文件,...
  • 希望对各位同学有用.1,打开你的LINUX("肺"话)2,在根目录下(也就是"/"下),建立一个文件(名随便起,例如:file.cpp),再建一个名为:test.c(这个文件是我们将要复制的母本,里面的内容你可以自行写入,稍后,我会我test.c里...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 675
精华内容 270
关键字:

linux把文件1写入文件2

linux 订阅