当前位置: 技术问答>linux和unix
Linux c中如何操作U盘文件
来源: 互联网 发布时间:2016-11-09
本文导语: 初学Linux,想写个程序读U盘中的文件。用fdisk -l得到的U盘的符号是/dev/sdb1。我在C语言中使用infile=fopen("/dev/sdb1/123.txt","r")总是返回空。请问是什么原因。用/dev/sdb1符号不能访问到U盘吗? 应该怎样写?谢谢。 ...
初学Linux,想写个程序读U盘中的文件。用fdisk -l得到的U盘的符号是/dev/sdb1。我在C语言中使用infile=fopen("/dev/sdb1/123.txt","r")总是返回空。请问是什么原因。用/dev/sdb1符号不能访问到U盘吗? 应该怎样写?谢谢。
|
你用fdisk -l 看到的是磁盘空间,不能用标准Io访问,需把U盘挂载后打开文件,挂载方法 网上有相关资料。比如你挂载到 /mnt目录 :infile=fopen("/mnt/123.txt","r"); 就可以了。
|
挂载u盘只需 mount 命令就可以了,在shell下,mount -t ext3 /mnt /dev/sdb1/
|
代码里也可以使用系统调用:
#include
int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);
和上面shell命令的参数基本相似。
#include
int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);
和上面shell命令的参数基本相似。
|
对头,用mount先挂载了u盘才可以访问u盘里的文件。
|
U盘使用前需要mount,一般这样操作:
mkdir /mnt/usb
mount /dev/sda1 /mnt/usb(具体用法看mount --help)
这样操作/mnt/usb/123.txt文件就可以了。
另外的方法就是在fopen之前,使用楼上提供的mount函数加载U盘。
mkdir /mnt/usb
mount /dev/sda1 /mnt/usb(具体用法看mount --help)
这样操作/mnt/usb/123.txt文件就可以了。
另外的方法就是在fopen之前,使用楼上提供的mount函数加载U盘。