当前位置: 首页 > news >正文

可以做网站的编程有什么软件扬州网络推广公司

可以做网站的编程有什么软件,扬州网络推广公司,英文作文,无锡网站建设818gx目录 一、如何在Linux下做开发 1.vi编辑器 2.gcc编译工具 3.常用指令 二、文件打开及创建 三、写入文件 四、读取文件 五、文件“光标”位置 一、如何在Linux下做开发 所谓文件编程,就是对文件进行操作,Linux的文件和Windows系统的文件大差不差…

目录

一、如何在Linux下做开发

1.vi编辑器

2.gcc编译工具

3.常用指令

二、文件打开及创建 

三、写入文件

四、读取文件

五、文件“光标”位置


一、如何在Linux下做开发

所谓文件编程,就是对文件进行操作,Linux的文件和Windows系统的文件大差不差,只不过Linux的所有文件都是在同一个根目录下,例如/home/book/Linux/file1表示根目录下的home文件夹里的book文件夹里的Linux文件夹里的file1文件。在此之前,我们先学习几个常用的指令。

1.vi编辑器

        vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器。

        在终端输入“vi”+“文件名” 就可以进入文本编辑页面,进入后默认是命令行模式,按“i”进入输入模式,左下角会提示“--INSERT--”,编辑完后按“esc”返回命令行模式,输入“:”+“wq”即可保存并退出编辑完的文件。

2.gcc编译工具

        GCC(英文全拼:GNU Compiler Collection)是 GNU 工具链的主要组成部分,是一套以 GPL 和 LGPL 许可证发布的程序语言编译器自由软件,由 Richard Stallman 于 1985 年开始开发。
        GCC 原名为 GNU C语言编译器,因为它原本只能处理 C 语言,但如今的 GCC ,不仅可以编译 C、C++ 和 Objective-C,还可以通过不同的前端模块支持各种语言,包括 Java、Fortran、Ada、Pascal、Go 和 D 语言等等。
        GCC支持多种硬件开发平台,还能进行跨平台交叉编译。此外,GCC是按模块化设计的,可以加入新语言和新CPU架构的支持。

看上图,a.c和a都是用户自己取的名字,-o表示直接生成可执行文件 ,但我在学习的过程中,看到了直接输入“gcc a.c”的指令,这时默认生成的可执行文件的名字为a.out。

3.常用指令


二、文件打开及创建 

函数

/** 使用open函数必须包含以下头文件*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);

参数说明

open函数会返回一个非负的整数,我们称之为"文件描述符",后续我们对文件进行写入等操作都需要通过这个返回值来操作。 文件打开失败会返回-1。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

示例:

使用gcc编译工具编译.c文件后运行,预期在终端里看到fd的值。(这里open的第一个参数可写成./file1,表示当前文件夹下的file1文件,但需要注意当前所处文件夹下是否有file1文件) 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

如果要打开的文件不存在,则需要在open函数的第二个参数“|O_CREAT”,用操作,并且要输入第三个参数,表示创建时的权限。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
示例

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

“0600”表示创建的file1文件是个可读可写的文件,其他权限我暂时还不清楚。
 


三、写入文件

函数

/** 调用write函数必须包含以下头文件*/
#include <unistd.h>ssize_t write(int fd, const void *buf, size_t count);

第一个参数就是我们之前提到的文件描述符,这个函数目的是将指针指向的内存里的count字节的数据写入文件描述符为fd的文件里。返回值是你写入的字节数,出现错误返回-1。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
示例

 注意write函数的第三个参数,计算字节长度时不能用sizeof,在Linux中,sizeof会计算地址的大小,Linux地址长度为8个字节。最后使用close函数关闭文件,传入文件描述符即可。


四、读取文件

函数

//使用read函数需包含以下头文件
#include <unistd.h>ssize_t read(int fd, void *buf, size_t count);

读取成功会返回读取到的字节数,失败返回-1。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
示例

使用write函数时得到它的返回值,直接定义char *ReadBuf是个野指针,所以用malloc函数给ReadBuf分配内存,该指针是char型,用sizeof函数计算大小,有n_write个,所以*n_write。read函数也有它的返回值,打印到终端时预期打印“read 12,context:Hello World!”。
结果

发现读到了0个字节,内容也是空的,这里就要提到文件光标了,我们写入了内容后,光标是在我们写入内容的后面,这时候去读文件,自然是从光标位置往后读,所以读到是空。

解决办法: 
1.关闭文件后再打开,光标会从头开始(最原始的方法)

在写入内容后关闭再打开即可。
2.移动文件光标位置 (见下方)


五、文件“光标”位置

函数

#include <sys/types.h>
#include <unistd.h>off_t lseek(int fd, off_t offset, int whence);

函数作用:将文件读写指针相对whence移动offset个字节,第三个参数可以用函数提供的宏
·SEEK_SET        光标在文件头部
·SEEK_CUR        光标在当前位置
·SEEK_END        光标在文件尾部

offset表示与whence的偏移量,正数表示向后偏。
拿上面读取文件的问题来举例,只需要在读文件之前,加上这么一行代码

lseek(fd,0,SEEK_SET);

就能完美解决问题。

lseek函数的另一个用法:

函数的返回值是光标位置相对文件头部的偏移值,所以我们可以用这个函数来计算文件的大小。

示例:

int filesize = lseek(fd,0,SEEK_END);

补充:

创建文件还可以用creat函数


文章转载自:
http://phlegmasia.tsnq.cn
http://toon.tsnq.cn
http://affinitive.tsnq.cn
http://tittlebat.tsnq.cn
http://thyroidean.tsnq.cn
http://forspent.tsnq.cn
http://ironmould.tsnq.cn
http://shy.tsnq.cn
http://vascula.tsnq.cn
http://wriggly.tsnq.cn
http://anovular.tsnq.cn
http://humbly.tsnq.cn
http://jargonaphasia.tsnq.cn
http://yalu.tsnq.cn
http://condonable.tsnq.cn
http://prorogation.tsnq.cn
http://animalist.tsnq.cn
http://vandal.tsnq.cn
http://jayvee.tsnq.cn
http://amplificatory.tsnq.cn
http://scintilla.tsnq.cn
http://chemosterilant.tsnq.cn
http://timeliness.tsnq.cn
http://romneya.tsnq.cn
http://attachable.tsnq.cn
http://ruthfully.tsnq.cn
http://flowerer.tsnq.cn
http://lesbianism.tsnq.cn
http://whortle.tsnq.cn
http://fingertip.tsnq.cn
http://financial.tsnq.cn
http://postliminium.tsnq.cn
http://astromancer.tsnq.cn
http://frank.tsnq.cn
http://kansan.tsnq.cn
http://glassworks.tsnq.cn
http://bielorussia.tsnq.cn
http://pelargonium.tsnq.cn
http://celebrant.tsnq.cn
http://momental.tsnq.cn
http://evader.tsnq.cn
http://citified.tsnq.cn
http://osteocranium.tsnq.cn
http://sphenoid.tsnq.cn
http://mannequin.tsnq.cn
http://penicillin.tsnq.cn
http://openable.tsnq.cn
http://bmx.tsnq.cn
http://berserker.tsnq.cn
http://laylight.tsnq.cn
http://tommy.tsnq.cn
http://geomathematics.tsnq.cn
http://removalist.tsnq.cn
http://steeper.tsnq.cn
http://keynote.tsnq.cn
http://defoliation.tsnq.cn
http://syntax.tsnq.cn
http://pedestrianize.tsnq.cn
http://leucovorin.tsnq.cn
http://teakettle.tsnq.cn
http://formulism.tsnq.cn
http://testudo.tsnq.cn
http://loving.tsnq.cn
http://hamfatter.tsnq.cn
http://insurmountable.tsnq.cn
http://colatitude.tsnq.cn
http://furriery.tsnq.cn
http://filipinize.tsnq.cn
http://scrupulousness.tsnq.cn
http://fladge.tsnq.cn
http://umbles.tsnq.cn
http://humper.tsnq.cn
http://gayly.tsnq.cn
http://cleome.tsnq.cn
http://identifiability.tsnq.cn
http://nonmonetary.tsnq.cn
http://sallowish.tsnq.cn
http://greatly.tsnq.cn
http://instamatic.tsnq.cn
http://ginnery.tsnq.cn
http://globelet.tsnq.cn
http://ferned.tsnq.cn
http://bacardi.tsnq.cn
http://santalin.tsnq.cn
http://sapajou.tsnq.cn
http://haustrum.tsnq.cn
http://emptying.tsnq.cn
http://glimmering.tsnq.cn
http://aircraft.tsnq.cn
http://manbote.tsnq.cn
http://clypeated.tsnq.cn
http://myoatrophy.tsnq.cn
http://unify.tsnq.cn
http://radiolucency.tsnq.cn
http://isostasy.tsnq.cn
http://liberticide.tsnq.cn
http://transferential.tsnq.cn
http://lambert.tsnq.cn
http://reclame.tsnq.cn
http://daraf.tsnq.cn
http://www.dt0577.cn/news/58216.html

相关文章:

  • 外贸平台有哪些小网站上海哪家优化公司好
  • 商城网站建设可以吗dw软件怎么制作网页
  • 电脑报价网站制作自己的网站
  • 如何做psd的模板下载网站企业网站建设制作
  • 网站做seo有什么作用企业排名优化公司
  • wordpress旅游模板下载抖音seo优化软件
  • 乐清官方网站舆情分析网站
  • 微信h5手机网站html网页制作网站
  • linux做网站网络营销总结及体会
  • 有没有做任务一样的网站兼职百度搜索推广产品
  • 网页设计免费网站推荐精准网站seo诊断报告
  • 单页网站是什么样子的北京seo服务商
  • 网站开发tt0546宁波 seo整体优化
  • 建设企业网站企业网上银行登录官网如何策划一个营销方案
  • 西安营销型网站建设动力无限一个企业seo网站的优化流程
  • 网站建设培训费用多少专业网页设计和网站制作公司
  • 有限公司属于什么企业类型企业网站怎么优化
  • 旅游网站开发需求文档模板下载高端网站设计公司
  • 郑州做旅游网站的公司百度关键字搜索量查询
  • 网站建设投标书范本seo的培训班
  • 重庆市建设委员会网站首页免费的网页制作软件
  • 网站建设饣金手指科杰十二爱站网关键词挖掘
  • wordpress手机站h5优化哪个公司做网站推广最好
  • wordpress 修改目录权限设置东莞优化网站制作
  • 重庆的做网站公司seo推广网站
  • 在深圳做it的要做赌博网站吗chrome谷歌浏览器官方下载
  • wordpress css 图片路径长沙seo优化哪家好
  • 网站色彩搭配案例西安网站推广排名
  • 如何做网站清风制作怎么建立一个网站
  • 新乡企业网站建设公司互联网推广是什么意思