精华内容
下载资源
问答
  • linux 无法打开文件进行写入
    千次阅读
    2021-05-27 18:10:48

    运行代码的时候需要写入文件的操作,运行完代码也没有报错,但是打开文件是空的,输出也没问题就是不能写入,代码也不报错。。。

    可能的原因:你的文件是只读文件(read only),尝试修改文件权限就可以了。(chmod 666 example.txt)

    更多相关内容
  • 报错如”/etc/ssh/sshd_config” E212: 无法打开写入文件。 问题思考 既然提示没有权限,又是root用户,看肯定是给该文件设置了特殊的权限。检查特殊权限设置: getfacl lsattr getfacl 结果正常 root@pts/1 $...
  • 报错如"/etc/ssh/sshd_config" E212: 无法打开写入文件。问题思考既然提示没有权限,又是root用户,看肯定是给该文件设置了特殊的权限。检查特殊权限设置:·getfacl·lsattrgetfacl 结果正常root@pts/1$ getfacl ...

    当前是root用户,去编辑/etc/ssh/sshd_config 却提示没有权限修改。报错如"/etc/ssh/sshd_config" E212: 无法打开并写入文件。

    问题思考

    既然提示没有权限,又是root用户,看肯定是给该文件设置了特殊的权限。检查特殊权限设置:

    · getfacl

    · lsattr

    getfacl 结果正常

    root@pts/1 $ getfacl /etc/ssh/sshd_configgetfacl: Removing leading '/' from absolute path names# file: etc/ssh/sshd_config# owner: root# group: root

    user::rw-

    group::---

    other::---

    lsattr提示错误:-bash: lsattr: command not found 没有该命令,奇怪。当前系统是CentOS release 6.5 (Final),那就尝试安装。

    查找得知lsattr和chattr属于安装包e2fsprogs,安装之。

    root@pts/1 $ yum install e2fsprogs

    设置安装进程

    解决依赖关系--> 执行事务检查---> Package e2fsprogs.x86_64 0:1.41.12-18.el6_5.1 will be 升级---> Package e2fsprogs.x86_64 0:1.41.12-23.el6 will be an update--> 处理依赖关系 libss = 1.41.12-23.el6,它被软件包 e2fsprogs-1.41.12-23.el6.x86_64 需要

    ... ...

    更新完毕:

    e2fsprogs.x86_64 0:1.41.12-23.el6

    作为依赖被升级:

    e2fsprogs-libs.x86_64 0:1.41.12-23.el6      libcom_err.x86_64 0:1.41.12-23.el6      libcom_err-devel.x86_64 0:1.41.12-23.el6

    libss.x86_64 0:1.41.12-23.el6

    完毕!

    lsattr 检查

    root@pts/1 $ lsattr  /etc/ssh/sshd_config

    ----i--------e- /etc/ssh/sshd_config

    这里的i 表示immutable,在文件上启用这个属性时,我们不能更改、重命名或者删除这个文件。

    这里的e 表示extent format,它表明该文件使用磁盘上的块的映射扩展。属于“正常”规则

    chattr删除不可修改属性

    root@pts/1 $ chattr -i /etc/ssh/sshd_config

    iZ25zjpz5pqZ [~] 2017-12-16 10:59:14

    root@pts/1 $ lsattr  /etc/ssh/sshd_config

    -------------e- /etc/ssh/sshd_config

    iZ25zjpz5pqZ [~] 2017-12-16 10:59:17

    root@pts/1 $ vim /etc/ssh/sshd_config

    iZ25zjpz5pqZ [~] 2017-12-16 10:59:26

    root@pts/1 $

    从上面的操作可以看到我们取消i设置之后可以成功修改该文件。

    如果完成修改你可以让其恢复不可修改属性,可以执行chattr +i /etc/ssh/sshd_config

    本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Linux!

    展开全文
  • Linux文件写入操作

    千次阅读 2021-03-29 19:15:03
    思路是什么呢,很容易,那就是打开文件写入东西,关闭文件呗,对吧,开始编程。 简单的,定义一个字符串,指向它的指针作为write的第二个参数,strlen计算这个字符的长度 ,并且把write函数返

    write 函数和close函数的使用

    首先,我们还是来看Linux手册上的write函数,close函数
    在这里插入图片描述
    在这里插入图片描述对于文件的操作最后一定要记住关闭文件,养成这样的习惯对于以后很有好处。
    首先要准备一个文件,对吧,我们要往里面写点东西,就先决定为写“gao ying jie hen shuai”,(别问,问就是事实)
    思路是什么呢,很容易,那就是打开文件,写入东西,关闭文件呗,对吧,开始编程。

    在这里插入图片描述简单的,定义一个字符串,指向它的指针作为write的第二个参数,strlen计算这个字符的长度
    ,并且把write函数返回值打印出来。
    好,我们来运行一下,看看结果。
    在这里插入图片描述
    可以看到,file1中写入了这句话,大声地念出来“gao ying jie hen shuai!”
    结束,结束(doge)
    (师上官可编程)

    展开全文
  • 文件写入操作编程1.写入操作的api:编程实例 1.写入操作的api: 在Linux终端中输入man 2 write可以查询 #include <unistd.h> ssize_t write(int fd, const void *buf, size_t count); 参数介绍: write(int ...

    文件写入操作编程

    1.写入操作的api:

    在Linux终端中输入man 2 write可以查询

    #include <unistd.h>
    ssize_t write(int fd, const void *buf, size_t count);
    
    

    参数介绍:
    write(int fd, const void *buf, size_t count) :
    fd:其中fd为文件标识符,即open的返回值,打开文件后根据文件标识符对打开的文件进行操作.
    buf:无类型的指针,缓冲区,数据就写在这个缓冲区里面。
    count:写入的大小,写多少个字节到文件中。

    对于写入的操作和打开文件是一起出现的,就像windows里面,你需要打开这个word文档才能在里面写文章。

    fd好理解就是打开文件后的open返回值,而const void *buf,我们可以定义一个char *的指针,将数据写入后再将它强转为void型指针,而count即对应内容的大小(字数)。

    编程实例

    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    #include <stdlib.h>
    int main()
    {
            //int open(const char *pathname, int flags);
            int fd;
            char *buf=NULL;
            buf=(char *)malloc(128);
            fd=open("./file2",O_RDWR|O_CREAT,0600);
            if(fd == -1){
                    printf("creat fail\n");
            }
            printf("creat success\n");
            //ssize_t write(int fd, const void *buf, size_t count);
            printf("plese input msg to file2:");
            gets(buf);
            write(fd,(void *)buf,strlen(buf));
            close(fd);
            return 0;
    }
    
    

    buf为设置的缓冲区,所设置的buf是char型的,所以在传参时将其设置为void型,其中close(fd)与open应该成队出现,如果打开后不关闭文件则会造成文件的损坏,该代码运行后,需要从键盘输入一串字符写入文件中,运行结果如下:
    在这里插入图片描述
    在这里插入图片描述

    如图先运行程序向文件中写入数据,其次用vi打开所编写的文件,查看里面的结果是否一致。

    师承上官可编程

    展开全文
  • 运行环境:在wm虚拟机的Linux中运行sudo命令时,在编写需要root权限的配置文件过程 出错原因:没有切换到root用户权限,文件编辑完毕后入输入:wq 时,出现 E212:无法打开写入文件的错误提示信息,因为在该目录下...
  • 并非基于Linux的操作系统上的所有文件夹都可写入用户,系统级文件夹需要高级权限,这些权限的问题在于,它通常会锁定用户级访问权限,因此,如果你尝试将文件放在系统目录中并且无法进行,则需要了解如何更改权限以...
  • 有两种方式,可以非常简单的在Linux的shell命令行中,创建一个文件写入内容。一个是使用echo命令输出,另一个是使用vi/vim创建编辑文件。 echo输出内容到文件 echo最常见的用法是在终端打印(或输出)字符串。...
  • 1. 在linux中要操作一个文件,一般是先打开一个文件,得到文件描述符,然后对文件进行读写操作(或其他操作),最后是close文件即可 2. 强调一点:我们对文件进行操作时一定要先打开文件打开成功之后才能操作,...
  • vim中 E212:无法打开写入文件的解决办法出现背景: 在编写配置文件时,常常忘记切换到root用户,导致文件编辑完毕,敲入:wq 退出保存时, 出现 E212:无法打开写入文件的错误提示。这是由于在该目录下当前用户...
  • #include #include #include #include #include //创建文件void create_file(char *filename){if(creat(filename,0755)<0){printf("create file %s failure!\n",filename);exit(EXIT_FAILURE);}else{printf(...
  • Linux输出的内容写入文件

    千次阅读 2021-08-05 15:28:26
    有时候,你会想手动跟踪命令的输出内容,同时又想将输出的内容写入文件,确保之后可以用来参考。...tee命令基于标准输入读取数据,标准输出或文件写入数据。感受下这个命令的语法: tee [OPTION]... [FILE]... ...
  • Linux文件写入操作

    千次阅读 2021-03-21 10:39:22
    上一讲写到Linux环境下文件的创建,这讲承上启下 先看代码 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include<fcntl.h> #include<stdio.h> #include<...
  • Linux下用C语言实现文件写入

    万次阅读 多人点赞 2018-07-11 18:49:53
    C语言自带的文件写入机制是非常不错的选择我们可以通过一下代码来轻松完成文件的写入C语言中对文件操作的标准库函数以下所示: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 文件的...
  • “~./basnrc” E212: 无法打开写入文件 虚拟机编辑文件,保存时出现"~./basnrc" E212: 无法打开写入文件。 是因为现在的权限不够。 切换至root用户,然后输入虚拟机密码 su 再次编辑文件保存就没问题了。 .....
  • vim中 E212:无法打开写入文件

    千次阅读 2022-02-22 15:26:48
    vim中 E212:无法打开写入文件 vmware输入查看ip addr查看ip地址,没显示ip,通过 sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33 查看ens33网卡的配置,命令前需要加sudo,不然会因为权限不够报错,vim中 ...
  • linux-读取/写入C中的二进制文件有没有人有可以写入二进制文件的代码示例。 还有可以读取二进制文件并输出到屏幕的代码。 看例子,我可以写文件了,但是当我尝试从文件中读取文件时,它不能正确输出。4个解决方案86 ...
  • E212:无法打开写入文件

    千次阅读 2021-05-11 07:48:22
    【转】linux 设置用户id 设置组idlinux 设置用户id 设置组id 转自linux 设置用户id 设置组id 最近看apue,简单记录对设置用户id理解(设置组id同理). 1. 相关的id好像很多,共有哪些? 文件2个 ...初始化成员列表 ———...
  • vim编辑器
  • 但是还有一个问题,一般写文件时,你需要找到你想插入的具体的位置,然后再进行真正的写入操作。不幸的是,这会涉及到两个系统调用,lseek(2)和write(2).他们各自是原子性的,但是两个操作作为一个整体就不是原子性...
  • 当将同一个文件系统分别挂载到已创建的Linux云服务器和Windows云服务器后,在Windows云服务器上无法对在Linux云服务器上创建的文件写入数据。需要通过修改注册表将Windows访问NFS时的UID和GID均修改为0。本章节以...
  • } } } 不报错,目的路径下面根本刷不出来文件 解决办法 加如下代码f tpClient.enterLocalPassiveMode(); ACTIVE_LOCAL_DATA_CONNECTION_MODE , 而这种模式下,数据传输是从 服务器到本地 如果想要本地到服务器,...
  • 在编写配置文件时,常常忘记切换到root用户,导致文件编辑完毕,敲入:wq 退出保存时,出现 E212:无法打开写入文件 的错误提示。这是由于在该目录下当前用户没有写权限导致。 解决办法如下: 【1】 将文件保存到...
  • How to detect whether a file is being written by any ... 如何检测Linux中是否有其他进程正在写入文件? Before a program open a file to processes it, it wants to ensure no other processes are writing t...
  • 某天,我启动了一个进程,向一个文件a.txt中写入内容,但不小心在另一个窗口用命令rm -f a.txt把它删除了,我以为这应该会触发一个警告,比如“不能删除一个打开的正在写入文件”之类的,结果命令干脆的执行成功了...
  • 问题描述: vim /etc/profile 写入时 出现 E121:无法打开写入文件解决方案解决方案: 1. 保存的时候用:w !sudo tee % 2. 输入密码即可
  • 下面的这个小例子是创建文件一个,并且在文件写入数据。 二、open()函数 他的功能是打开一个指定的文件,或者创建一个新文件,并获得文件描述符。 int open(const char *pathname, int flags); 参数 pathname是...
  • 本资源包含两个文件,一个可以打开指定位置的文件,根据用户的输入写入日期+内容,也就是写日志的功能。还有个文档根据我个人的需求,按行读文件并且识别空格的位置进行拆分。 不想要太多的积分,个人觉得1分就够了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 316,772
精华内容 126,708
关键字:

linux 无法打开文件进行写入