linux abs?linux软件推荐
linux如何给数组赋值linux数组赋值
新手求教,怎么给数组赋值?
给数组赋初值的方法:
1、直接初始化:intarr={1,2,3};
2、遍历访问初始化:for(i=0;i3;i++)arr=i;
3、内存操作函数:memset(arr,3,abs);//abs为另一个已知的数组。
4、字符串赋值函数,仅限于char型数组:strcpy(arr,abs);abs为一字符串或者char型数组。
给数组赋值eof怎么用?
eof
是个宏,其意思是:end
of
file,文件尾标志。
从数值上来看,就是整数-1
在c语言的头文件中对其进行了宏定义:
libio.h:#defineeof(-1)当读文件操作时,遇到文件结束位置或读数据出错均会返回
eof。
(c语言中所有的输入输出操作均是按读文件的思想来设计的,或者说,是文件操作的一种特例,如getchar()就是fgetc(stdin)
的一个宏
)
intgetchar();//从标准输入缓冲区读取一个字符,成功返回该字符的ascii值,出错,返回eof那么,如何在键盘输入时,产生eof呢?
不同的系统方法不同:
linux系统下,在输入回车换行后的空行位置,按
ctrl+d
(先按ctrl键,不放,再按d键)
windows系统下,在输入回车换行后的空行位置,按
ctrl+z,再回车确认
以下代码供参考:
#include
voidmain()
{
intch;
do{
ch=getchar();
printf(ch=%dn,ch);//输出读返回的ch值,读到eof会输出-1
}while(ch!=eof);
}
如何给数组赋值?
给数组赋初值的方法:
1、直接初始化:intarr={1,2,3};
2、遍历访问初始化:for(i=0;i3;i++)arr=i;
3、内存操作函数:memset(arr,3,abs);//abs为另一个已知的数组。
4、字符串赋值函数,仅限于char型数组:strcpy(arr,abs);abs为一字符串或者char型数组。
ntt呵呵,也许这样理解会比较容易:
“是要给t0,t1,t2,t3,t4....t100赋值”如果想每一个都赋值,这样即可:
intt
for(inta=0;a100;a++)
{
cin>>t;
}
给数组赋值的方法?
在大多数编程语言中,给数组赋值的方法通常是通过遍历数组的每个元素,并将其赋值为指定的值。希望我的能帮助到你。
数组怎么自动赋值?
可以使用for循环,如:
for(inti=0;i++;)
a=i;
树莓派(Linux 系统)触摸屏翻转显示以及触摸翻转
树莓派(Linux系统)触摸屏翻转显示以及触摸翻转
问题:未使用的Pi官方屏幕,所以使用HDMI屏幕显示的时候,显示旋转的同时,触摸没有旋转
目的:旋转屏幕显示的同时,使得触摸也跟随旋转
操作总流程:
旋转90度操作
翻转显示:
1.sudo nano/boot/config.txt
2.在文件末尾加入
display_rotate=0
display_rotate=1 //90°
display_rotate=2 //180°
display_rotate=3 //270°
ctrl+ o保存文档重启即可。
注:以下操作皆为SSH操作,所以每条指令前都加了DISPLAY=:0,如果本机操作删掉即可。
1.安装xinput
sudo apt-get install xinput
2.列出所有输入设备信息远程操作时,使用xinput指令需要加入DISPLAY=:0
DISPLAY=:0 xinput--list
3.列出目标设备属性
DISPLAY=:0 xinput--list-props 7
4.旋转触摸的坐标轴
1)所以先交换x、y轴
DISPLAY=:0 xinput--set-prop'7''Evdev Axes Swap' 1
2)然后反转y轴
DISPLAY=:0 xinput--set-prop'7''Evdev Axis Inversion' 0 1
显示旋转修改之后需要重启。而触摸旋转不需要重启。
详细操作方法:
1.安装xinput
sudo apt-get install xinput
描述:
xinput- utility to configure and test X input devices
xinput-用于配置和测试X输入设备的实用程序
xinput is a utility to list available input devices,
xinput是一个实用程序,可以列出可用的输入设备、
query information about a device and change input device settings.
关于设备的查询信息和更改输入设备设置
2.列出所有输入设备信息
xinput--list
如果远程操作记得在命令前加DISPLAY=:0
得到以下信息:
pi@NTGAGE:~$ DISPLAY=:0 xinput--list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=6 [slave pointer (2)]
⎜ ↳ WaveShare WaveShare Touchscreen id=7 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard(2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard(3)]
↳ Logitech USB Keyboard id=8 [slave keyboard(3)]
↳ Logitech USB Keyboard id=9 [slave keyboard(3)]
3.列出目标设备属性
由于所使用的触摸屏幕是微雪7寸屏幕,由以上信息可以得到微雪的触摸屏对应的ID为7
所以,接下来看这款输入设备的属性,
pi@NTGAGE:~$ DISPLAY=:0 xinput--list-props 7
Device'WaveShare WaveShare Touchscreen':
Device Enabled(115): 1
Coordinate Transformation Matrix(116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile(240): 0
Device Accel Constant Deceleration(241): 1.000000
Device Accel Adaptive Deceleration(242): 1.000000
Device Accel Velocity Scaling(243): 10.000000
Device Product ID(244): 3823, 5
Device Node(245): "/dev/input/event3"
Evdev Axis Inversion(246): 0, 0
Evdev Axis Calibration(247): <no items>
Evdev Axes Swap(248): 0
Axis Labels(249): "Abs MT Position X"(267),"Abs MT Position Y"(268),"Abs MT Pressure"(269),"None"(0),"None"(0),"None"(0)
Button Labels(250): "Button Unknown"(233),"Button Unknown"(233),"Button Unknown"(233),"Button Wheel Up"(121),"Button Wheel Down"(122)
Evdev Scrolling Distance(251): 0, 0, 0
Evdev Middle Button Emulation(252): 0
Evdev Middle Button Timeout(253): 50
Evdev Third Button Emulation(254): 0
Evdev Third Button Emulation Timeout(255): 1000
Evdev Third Button Emulation Button(256): 3
Evdev Third Button Emulation Threshold(257): 20
Evdev Wheel Emulation(258): 0
Evdev Wheel Emulation Axes(259): 0, 0, 4, 5
Evdev Wheel Emulation Inertia(260): 10
Evdev Wheel Emulation Timeout(261): 200
Evdev Wheel Emulation Button(262): 4
Evdev Drag Lock Buttons(263): 0
这块屏幕正常显示和触摸的信息如上。
如果执行到这一步,发现并没有以上的Evdev等属性项,请跳转第2种方法。
现在需要达到的目的是在屏幕显示反转的同时,使得触摸也随显示翻转。
屏幕显示为翻转90度。/boot/config.txt设置为display_rotate=1
上述信息中Evdev Axis Inversion项是每条轴的旋转设置项,后面第一个参数是x,第二个参数是y.
Evdev Axes Swap项对应的是两条轴的交换。
0为不翻转,1为翻转
例如。x轴原本是朝向右的,当把Evdev Axis Inversion的第一个参数
设置为1,即x轴朝向左。
4.旋转触摸的坐标轴
现在目的是要触摸旋转90度,从坐标轴理解:
即目的x轴正向为初始y轴的反向。目的y轴的正方向为初始x轴的正向。
1)所以先交换x、y轴
DISPLAY=:0 xinput--set-prop'7''Evdev Axes Swap' 1
2)然后反转y轴
DISPLAY=:0 xinput--set-prop'7''Evdev Axis Inversion' 0 1
这样即可完成触摸旋转90度。若要旋转其他角度,推理一下即可。
显示旋转修改之后需要重启。而触摸旋转不需要重启。
第二种方法
如果查询到的信息如下
DISPLAY=:0 xinput--list-props 6
Device'WaveShare WaveShare Touchscreen':
Device Enabled(114): 1
Coordinate Transformation Matrix(115): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix(246): 0.000000, 1.000000, 0.000000,-1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default(247): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available(248): 1, 0
libinput Send Events Mode Enabled(249): 0, 0
libinput Send Events Mode Enabled Default(250): 0, 0
Device Node(251): "/dev/input/event0"
Device Product ID(252): 3823, 5
可以看到该驱动方式采用的是libinput,
查看/usr/share/X11/xorg.conf.d/目录下是否有40-libinput.conf这个文件。
无则需要安装
sudo apt-get install xserver-xorg-input-libinput
下一步安装完成后ls一下,就可以看到在/usr/share/X11/xorg.conf.d/目录下存在该文件,
下一步复制该文件到/etc/X11/xorg.conf.d/目录下。
一开始xorg.conf.d这个目录在/etc/X11可能没有,需要自己创建。
sudo mkdir xorg.conf.d
下一步复制到xorg.conf.d目录下即可。
sudo cp/usr/share/X11/xorg.conf.d/40-libinput.conf/etc/X11/xorg.conf.d/
下一步进入/etc/X11/xorg.conf.d/目录下修改40-libinput.conf文件
cd/etc/X11/xorg.conf.d/
sudo nano 40-libinput.conf
找到touchscreen section
Section"InputClass"
Identifier"libinput touchscreen catchall"
MatchIsTouchscreen"on"
MatchDevicePath"/dev/input/event*"
Driver"libinput"
EndSection
添加一行 Option"CalibrationMatrix""0 1 0-1 0 1 0 0 1
结果为
Section"InputClass"
Identifier"libinput touchscreen catchall"
Option"CalibrationMatrix""0 1 0-1 0 1 0 0 1
MatchIsTouchscreen"on"
MatchDevicePath"/dev/input/event*"
Driver"libinput"
EndSection
然后重启生效
这样的修改也是同样修改为翻转90度,如果需要修改为其他角度,请参考libinput的算法
linux怎么查找一个文件在哪里
因为要装pl/sql所以要查找tnsnames.ora文件。。看看怎么查这个文件在Linux下的哪个目录
find/-name tnsnames.ora
查到:
/opt/app/Oracle/product/10.2/network/admin/tnsnames.ora
/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora
还可以用locate来查找
locate tnsnames.ora
结果是:
/opt/app/oracle/product/10.2/hs/admin/tnsnames.ora.sample
/opt/app/oracle/product/10.2/network/admin/tnsnames.ora
/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora
一.通过文件名查找法:
举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:
find/-name httpd.conf
这个命令语法看起来很容易就明白了,就是直接在find后面写上-name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表:
etc/httpd/conf/httpd.conf
这就是httpd.conf这个文件在linux系统中的完整路径。查找成功。
如果输入以上查找命令后系统并没有显示出结果,那么不要以为系统没有执行find/-name httpd.conf命令,而可能是你的系统中没有安装Apache服务器,这时只要你安装了ApacheWeb服务器,然后再使用find/-name httpd.conf就能找到这个配置文件了。
二.无错误查找技巧:
在Linux系统中“find”命令是大多数系统用户都可以使用的命令,并不是ROOT系统管理员的专利。但是普通用户使用“find”命令时也有可能遇到这样的问题,那就是Linux系统中系统管理员ROOT可以把某些文件目录设置成禁止访问模式。这样普通用户就没有权限用“find”命令来查询这些目录或者文件。当普通用户使用“find”命令来查询这些文件目录是,往往会出现"Permissiondenied."(禁止访问)字样。系统将无法查询到你想要的文件。为了避免这样的错误,我们可是使用转移错误提示的方法尝试着查找文件,例如输入:
find/-name access_log 2>/dev/null
这个方法是把查找错误提示转移到特定的目录中去。系统执行这个命令后,遇到错误的信息就直接输送到stderrstream2中,access_log2就是表明系统将把错误信息输送到stderrstream2中,/dev/null是一个特殊的文件,表明空的或者错误的信息,这样查询到的错误信息将被转移了,不会再显示了。
在Linux系统查找文件也会遇到这样一个实际问题。如果我们在整个硬盘,这个系统中查找某个文件就要花费相当长的一段时间,特别是大型Linux系统和容量较大的硬盘,文件放在套嵌很深的目录中的时候。如果我们知道了这个文件存放在某个大的目录中,那么只要在这个目录中往下找就能节省很多时间了。使用find/etc-name httpd.conf就可以解决这个问题。上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/”这个函数符号的含义,如果输入“find/”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/etc”就是只在
etc目录下查找文件。因为“find/etc”表示只在etc目录下查找文件,所以查找的速度就相应要快很多了。
三.根据部分文件名查找方法:
例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find/etc-name'*srm*'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如absrmyz,tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc-name'srm*'
这是只有像srmyz这样的文件才被查找出来,像absrmyz或者absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
四.根据文件的特征查询方法:
如果只知道某个文件的大小,修改日期等特征也可以使用“find”命令查找出来,这和WINDOWS系统中的“搜索”功能是基本相同的。在微软的“搜索”中,“搜索助理”使得搜索文件和文件夹、打印机、用户以及网络中的其他计算机更加容易。它甚至使在Internet上搜索更加容易。“搜索助理”还包括一个索引服务,该服务维护了计算机中所有文件的索引,使得搜索速度更快。使用“搜索助理”时,用户可以指定多个搜索标准。例如,用户可以按名称、类型及大小搜索文件和文件夹。用户甚至可以搜索包含特定文本的文件。如果用户正使用Active Directory,这时还可以搜索带有特定名称或位置的打印机。
例如我们知道一个Linux文件大小为1,500bytes,那么我们可是使用如下命令来查询find/-size
1500c,字符c表明这个要查找的文件的大小是以bytes为单位。如果我们连这个文件的具体大小都不知道,那么在Linux中还可以进行模糊查找方式来解决。例如我们输入find/-size+10000000c这个命令,则标明我们指定系统在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。下面的列表就是在Linux使用不同“find"命令后系统所要作出的查找动作,从中我们很容易看出在Linux中使用“find”命令的方式是很多的,“find”命令查找文件只要灵活应用,丝毫不比在WINDOWS中查找能力差。
find/-amin-10#查找在系统中最后10分钟访问的文件
find/-atime-2#查找在系统中最后48小时访问的文件
find/-empty#查找在系统中为空的文件或者文件夹
find/-group cat#查找在系统中属于groupcat的文件
find/-mmin-5#查找在系统中最后5分钟里修改过的文件
find/-mtime-1#查找在系统中最后24小时里修改过的文件
find/-nouser#查找在系统中属于作废用户的文件
find/-user fred#查找在系统中属于FRED这个用户的文件
下面的列表就是对find命令所可以指定文件的特征进行查找的部分条件。在这里并没有列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变状态的文件
-ctime n
查找系统中最后n*24小时被改变状态的文件
-empty
查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
-false
查找系统中总是错误的文件
-fstype type
查找系统中存在于指定文件系统的文件,例如:ext2.
-gid n
查找系统中文件数字组 ID为 n的文件
-group gname
查找系统中文件属于gnam文件组,并且指定组和ID的文件。