如何学习配置文件|学嵌入式linux需要先学什么

⑴ 我是一个初学者,谁有 c# winform 中用到ini 配置文件的具体例子,发我一份紧用作学习之用,谢谢~

你得先下载一个kernel32.dll然后在你的项目中添加引用下面是我做过的一个例子,你可以参考一下 public class inifile { #region 导入dll函数 [DllImport("kernel32.dll")] public extern static int GetPrivateProfileIntA(string segname, string keyname, int idefault, string filename); [DllImport("kernel32.dll")] public extern static int GetPrivateProfileStringA(string segname, string keyname, string sdefault, StringBuilder retvalue, int nsize, string filename); [DllImport("kernel32.dll")] public extern static int GetPrivateProfileSectionA(string segname, byte[] sdata, int nsize, string filename); [DllImport("kernel32.dll")] public extern static int WritePrivateProfileSectionA(string segname, byte[] sdata, string filename); [DllImport("kernel32.dll")] public extern static int WritePrivateProfileStringA(string segname, string keyname, string svalue, string filename); [DllImport("kernel32.dll")] public extern static int (byte[] vdata, int ilen, string filename); #endregion private string _path; /// <summary> /// 所有的设置节 /// </summary> public inisegments segments; /// <summary> /// 构造函数 /// </summary> /// <param name="vpath">ini文件路径</param> public inifile(string vpath) { _path = vpath; segments = new inisegments(this); byte[] bufsegs = new byte[32767]; int rel = (bufsegs, 32767, _path); int icnt, ipos; string tmp; if (rel > 0) { icnt = 0; ipos = 0; for (icnt = 0; icnt < rel; icnt++) { if (bufsegs[icnt] == 0x00) { tmp = System.Text.ASCIIEncoding.Default.GetString(bufsegs, ipos, icnt).Trim(); ipos = icnt + 1; if (tmp != "") segments.add(tmp); } } } } /// <summary> /// 获取ini文件路径 /// </summary> public string path { get { return _path; } } /// <summary> /// 读取一个整数型的设置值 /// </summary> /// <param name="segname">设置节名</param> /// <param name="keyname">设置项名</param> /// <param name="idefault">默认值</param> /// <returns>设置值</returns> public int getint(string segname, string keyname, int idefault) { return GetPrivateProfileIntA(segname, keyname, idefault, _path); } /// <summary> /// 读取一个字符串型设置值 /// </summary> /// <param name="segname">设置节名</param> /// <param name="keyname">设置项名</param> /// <param name="sdefault">默认值</param> /// <returns>设置值</returns> public string getstring(string segname, string keyname, string sdefault) { StringBuilder red = new StringBuilder(1024); GetPrivateProfileStringA(segname, keyname, "", red, 1024, _path); return red.ToString(); } /// <summary> /// 写入设置项 /// </summary> /// <param name="segname">设置节名</param> /// <param name="keyname">设置项名</param> /// <param name="vvalue">设置值</param> public void setstring(string segname, string keyname, string vvalue) { WritePrivateProfileStringA(segname, keyname, vvalue, _path); } /// <summary> /// 写入一个设置节 /// </summary> /// <param name="segname">设置节名</param> /// <param name="vdata">数据</param> /// <remarks> /// 数据为多个设置项组成的字符串,每个设置项之间用 "\0" 分割 /// 字符串最后用 "\0\0" 结束 /// </remarks> /// <example> /// writesegment(segname,"\0\0"); 能用于清除一个设置节下的所有设置项 /// </example> public void writesegment(string segname, string vdata) { WritePrivateProfileSectionA(segname, System.Text.ASCIIEncoding.Default.GetBytes(vdata), _path); } /// <summary> /// 读取一个设置节下面的所有设置项 /// </summary> /// <param name="o">要读取的设置节</param> public void getsegment(inisegment o) { byte[] vdata = new byte[32767]; int rlen = GetPrivateProfileSectionA(o.name, vdata, 32767, _path); o.items.Clear(); if (rlen < 1) return; string tmp = ""; int ipos, icnt; ipos = 0; for (icnt = 0; icnt < rlen; icnt++) { if (vdata[icnt] == 0x00) { tmp = System.Text.ASCIIEncoding.Default.GetString(vdata, ipos, icnt – ipos).Trim(); if (tmp != "") { string[] t = tmp.Split('='); if (t.Length <= 1) o.items.add(t[0], ""); else o.items.add(t[0], t[1]); } ipos = icnt + 1; } } } }用的时候就直接实例化这个写好的方法类 进行编辑string COM = new inifile("ini文件地址").segments["分类名称"].items["子项属性"].value这样就可以获取。例如:人(分类名称)身高(子项属性)=100体重(子项属性)=55inifile ini = new inifile("ini文件路径");ini.setstring("需要修改的分类名", "子项", "值");

⑵ 怎样学习linux

方法是多动手、动脑,学习时要经常与Windows进行对比。建议你先安装RedHat Linux,然后练习如何配置它,如何使用Linux命令,如何在X—WINDOWS下操作,如何在Linux下安装应用软件,如何在Linux下上网、编辑文档、播放多媒体文件、玩游戏等。 快速上手的方法只有一个,那就是多动手操作,看看你能否完成上面的工作。 2、Linux与Windows有哪些异同点? Windows是图形界面的,Linux类似以前的DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux也能显示图形界面,也有开始菜单、桌面、图标等。 Windows有MS-DOS方式,在该方式下通过输入DOS命令来操作电脑;而Linux与Windows类似,也有命令方式,Linux启动后如果不执行X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图片,玩游戏、上网、播放多媒体文件等。 不过Linux的分区格式和目录结构,与Windows迥然不同,应用软件的安装方式也不同。 3、安装Linux时的注意事项 安装前确定好Linux安装在哪个分区,Linux也有系统分区和Swap分区(类似Windows的虚拟分区,即交换文件)两个分区。由于Linux支持的分区格式与Windows分区格式不同,所以如果安装了Linux后,Windows还能继续使用,Linux就应该安装在硬盘分区的最后一个扩展分区;其次Linux的Swap分区必须保证有60MB,系统分区最少要保证240MB;此外安装前搜集好PC硬件方面的信息,特别是显示器信息,这将直接决定你安装Linux后,使用图形界面程序的效果;在安装、使用中输入命令时,请注意大小写。 4、掌握Linux的目录结构 Linux的目录结构与Windows不同,而且在Windows下看不到Linux的目录,反过来,Linux也看不到Windows下的目录。Linux下各目录的含义如下: 目录名称 意 义 /vmlinuz 该目录中存放的是系统内核 /bin 该目录中存放Linux的常用命令,在有的版本中是一些和根目录下相同的目录。 /boot 该目录下存放的都是系统启动时要用到的程序,当用lilo引导Linux时,会用到这里的一些信息 /dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”,就可以看到光驱中的文件;键入“cd /dev/mouse”即可看鼠标的相关文件。 /cdrom 该目录在刚安装系统时是空的,你可以将光驱文件系统挂在这个目录下, 例如“mount /dev/cdrom /cdrom” /etc 该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。 /sbin 该目录用来存放系统管理员的系统管理程序。 /home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。 /lib 该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库 /lost+found 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。 /mnt 该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下。 /proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的 /root 如果你是以超级用户的身份登录的,这个就是超级用户的主目录 /tmp 用来存放不同程序执行时产生的临时文件 /usr 用户的很多应用程序和文件都存放在该目录下 5、Linux的常用命令 如果在Linux命令行模式下遇到不会用的命令,你可以打"man [command]"得到该命令的帮助,如果想知道一个命令有哪些参数,可以打command -help来得到。 注意:linux中的参数输入形式和dos不一样,在命令后面应该打一个空格,然后打"-",最后再跟一个或多个参数;另外linux下大小写是有区别的! 下面介绍几个linux下最常用的命令,每个命令都与对应的dos命令作比较,并列出一些常用的参数。 命令参数 意 义 Ls -a列出系统中的隐含文件,linux下的隐含文件是靠文件名的格式来表示的,不同于dos是靠文件属性来表示,即只要该文件以“.”开头,那么它就是隐含文件。 -l以长式列出。就是把该文件或目录的所有信息都列出来,一个文件占一行 相当于dos下的dir命令,是列文件列表的命令。 cd 和dos下的cd一样,转换目录的命令。 注意:linux下转到上级目录要打"cd .."而不是dos下的"cd..",即"cd"后面要有个空格 pwd 列出当前目录命令,相当于dos下没有参数的cd命令。例如: [root@ttqq bin]# pwd /usr/bin [root@ttqq bin]# 这表示目前在"/usr/bin"目录下。 Mkdir -m mode表示建立目录时默认的目录模式。这个是dos和Windows所没有的功能,主要是关于权限的问题。 建立新目录,相当于dos的md命令。一般就用 mkdir [dirname] rmdir 删除目录,相当于dos的rd命令。 用法:rmdir [dirname] cp -r相当于dos的x/s。用于拷贝一个目录下的所有子目录和文件 建立新目录,相当于dos的md命令。一般就用 mkdir [dirname] cat 在文件后面追加文件,或在屏幕上打印文件内容,追加功能相当于dos的 file1+file2,而在屏幕上打印文件内容可以和dos的typeml来类比。如果文件太大,在一屏上无法完全显示,则可用more命令 more 分屏显示文件内容,和dos下的more命令大致相同,但它可以和别的命令搭配使用。如:cat /home/eec/myfile | more。参考资料:http://blog.donews.com/jgs/category/29817.aspx

⑶ 学嵌入式linux需要先学什么

刚入门的时来候,淘宝买一块cortex m3开发板源即可入手,通过项目,你需要了解:任务调度、进程间通信、内存管理、设备驱动、文件系统、TCP/IP协议栈、同步异步、中断、软件架构插件化等等基本原理,这些对你后面转Linux应用开发,安卓开发,后台开发大有好处。

到这一步,就看自己职业方向想往哪里发展,如果是想深入IOT物联网做端云连接,那么可以把几种基本总线驱动,I2C、SPI、USART理解透,如果是想拥抱互联网转入应用开发,那么可以把基础组件,如协议栈、文件系统吃透,BAT面试不是很难,问的都是这些基础。

顺便说一下,学东西就要学对市场有用的,不要过于学习屠龙之术,炫技给个人带来不了财富,公司需要的是能干活的人。

不准备讲过于偏硬件的知识如Cortex-M3的多种中断模式,操作寄存器组,芯片降噪等内容,而是专注于操作系统基本知识和项目经验,这些对于开发者后面接触Linux系统大有脾益,这些软件开发经验也是去互联网公司看重的能力。如有需要学习Linux命令请如下查找:

⑷ ArchLinux安装后的必须配置与图形界面安装教程

在 上一篇教程 中,我们成功地安装了 ArchLinux ,这时系统处于一个非常精简的状态,为了日常使用,我们必须进行一些配置、安装一些需要的组件,来扩展我们的系统功能,开源的组件相互协同工作也是 Linux 的迷人之处之一。

下面的教程部分参考了官方 General recommendations 。

现在我们是在新安装的系统上进行操作,所以我们要重新联网,我们在之前安装系统时已经提前装好了相关的包。所以现在只要跟之前一样:

同样可以使用 ping 命令来测试是否正常联网。

交换文件可以在物理内存不足的时候将部分内存暂存到交换文件中,避免系统由于内存不足而完全停止工作。

之前我们通常采用单独一个分区的方式作为交换分区,现在更推荐采用交换文件的方式,更便于我们的管理。

分配一块空间用于交换文件,执行:

交换文件的大小可以自己决定,推荐4G以下的物理内存,交换文件与物理内存一致,4G以上的物理内存,交换文件4-8G。

更改权限,执行:

设置交换文件,执行:

启用交换文件,执行:

最后我们需要编辑 /etc/fstab 为交换文件设置一个入口,使用 vim 打开文件:

注意编辑 fstab 文件的时候要格外注意不要修改之前的内容,直接在最后新起一行加入以下内容 :

在这之前所有操作都是以 root 用户的身份进行的,由于 root 的权限过高,日常使用 root 用户是不安全的。 Linux 为我们提供了强大的用户与组的权限管理,提高了整个系统的安全性。这里我们就来新建一个用户。

执行以下命令来创建一个名为 username 的用户(请自行替换 username 为你的用户名):

在这里稍微解释一下各参数的含义:

-m :在创建时同时在 /home 目录下创建一个与用户名同名的文件夹,这个目录就是你的 家目录 啦!家目录有一个别名是 ~ ,你可以在任何地方使用 ~ 来代替家目录路径。这个神奇的目录将会用于存放你所有的个人资料、配置文件等所有跟系统本身无关的资料。这种设定带来了诸多优点:

-G wheel : -G 代表把用户加入一个组,对用户与组的概念感兴趣的同学可以自行查找有关资料学习。后面跟着的 wheel 就是加入的组名,至于为什么要加入这个组,后面会提到。

当然记得为新用户设置一个密码,执行如下命令:

根据提示输入两次密码就可以了,注意,这是你的用户密码,推荐与之前设置的 root 用户的密码不同。

我们已经创建好了一个新的用户,以后我们将会使用这个用户来登录,那么如果我们需要执行一些只有 root 用户才能执行的命令(例如修改系统文件、安装软件包)怎么办?当然我们可以通过

命令来切换到 root 用户执行命令后再通过

返回普通用户。

但是 sudo 为我们提供了一个更快捷的办法,使用 sudo ,我们只要在需要 root 权权限执行的命令之前加上 sudo 就可以了,例如安装软件包:

下面我们就来安装并配置 sudo 。

sudo 本身也是一个软件包,所以我们需要通过 pacman 来安装:

接下来我们需要用专门的 visudo 命令来编辑 sudo 的配置文件:

实际上就是 vim 的操作,使用它是为了对编辑后的文件进行检查防止格式的错误。

找到

这行,去掉之前的 # 注释符,保存并退出就可以了。

这里的 %wheel 就是代表 wheel 组,意味着 wheel 组中的所有用户都可以使用 sudo 命令。

当然为了安全使用 sudo 命令还是需要输入 当前用户 的密码的。

配置好 sudo 以后,我们进行一次重启,执行:

来重启你的电脑。

重启以后输入你 刚创建的用户名与密码 来登录。

参照这个表格,安装相应的包,比如你是 intel 的集成显卡(绝大多数人的情况),执行:

提示: Nvidia 的独显驱动如非必要,建议只装集成显卡的驱动(省电,如果同时装也会默认使用集成显卡),不容易出现冲突问题。相反,如果集成显卡驱动有问题无法装上,可以装独显驱动,具体的版本请到下面的链接查询:

Xorg 是 Linux 下的一个著名的开源图形服务,我们的桌面环境需要 Xorg 的支持。

执行如下命令安装 Xorg 及相关组件:

Linux 下有很多著名的桌面环境如 Xfce 、 KDE(Plasma) 、 Gnome 、 Unity 、 Deepin 等等,它们的外观、操作、设计理念等各方面都有所不同, 在它们之间的比较与选择网上有很多的资料可以去查。

在这里我们选择笔者使用的 Xfce 和非常流行的 KDE(Plasma) 作为示范,当然你也可以把它们全部装上换着用……因为 Linux 的模块化,这样完全没有问题。

更多桌面环境的安装指南请见下面的链接:

直接安装软件包组(包含了很多软件包)即可:

直接安装软件包组(包含了很多软件包)即可:

安装好了桌面环境包以后,我们需要安装一个图形化的桌面管理器来帮助我们登录并且选择我们使用的桌面环境,这里我推荐使用 sddm 。

执行:

这里就要介绍一下 Arch 下用于管理系统服务的命令 systemctl 了,服务的作用就是字面意思,为我们提供特定的服务,比如 sddm 就为我们提供了启动 xorg 与管理桌面环境的服务。

命令的使用并不复杂:

所以这里我们就执行下面命令来设置开机启动 sddm :

到现在我们已经安装好了桌面环境,但是还有一件事情需要我们提前设置一下。由于我们之前使用的一直都是 netctl 这个自带的网络服务,而桌面环境使用的是 NetworkManager 这个网络服务,所以我们需要禁用 netctl 并启用 NetworkManager :

同时你可能需要安装工具栏工具来显示网络设置图标(某些桌面环境已经装了,但是为了保险可以再装一下):

这样开机以后我们就可以在图形界面下配置我们的网络啦。

重新启动后,如果你看到桌面管理器的界面,选择你需要的桌面环境并输入用户名与密码登陆后,看到了熟悉而又陌生的桌面,那么恭喜你,你已经完成了桌面环境的安装!

到这里, ArchLinux 的安装与基本配置教程已经结束了,笔者在编写过程中基本凭着多次安装的经验与这次安装的记录完成,难免会有疏漏与不正确的地方,还请大家通过下面的评论或邮件( [email protected] )提出意见与建议。也欢迎你们与我交流安装的问题。

下一篇文章 介绍了一些实用的配置(如中文输入法的安装)与软件包等。

⑸ 学java需要掌握 xml吗

学习java必须掌握xml知识,包括新建xml标签文件、如何解析xml文件节点等等知识,这些知识在web项目或者桌面项目中,都会在网络上传输数据,使用xml文件传输形式,可以节省流量,统一格式读取数据。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。


赞 (0)