1. 在linux中,使用cp命令如何创建文件的软链接与硬链接,二者有什么不同
cp -l sourcefile hardlinkfile软链接相当于windows的快捷方式,只是指向实际文件的“指针专”,不是实际文件;cp -s sourcefile softlinkfile硬链接比较复杂,相属当于新建了几个文件,这几个文件是同步的。你对任意一个操作都会在其它上面有作用。这对一份文件需要存放多个目录而只需修改任意一个特别好用。
2. C语言中FILE*fp是什么意思
FILE 是系统定义的一种结构类型的名称。
FILE *fp; 变量类型声明。声明 fp 是 FILE型指针,用于指向FILE类型 (文件结构)。
文件流– 排成一队,有先后次序的 输入(或输出)一串数据,驻留并通过 输入输出缓冲区,进出程序。如同水流般地流入或流出。它来自文件或写入文件。
(2)linux中定义指向文件的指针扩展阅读:
FILE *fp的替换用法:
fp=fopen("test.dat", "w"); /*建立一个文字文件只写*/
fclose(fp); /*关闭文件*/
fwrite(const void*buffer,size_t size,size_t count,FILE*stream);
1、buffer:是一个指针,对fwrite来说,是要输出数据的地址。
2、size:要写入的字节数;
3、count:要进行写入size字节的数据项的个数;
4、stream:目标文件指针。
3. linux操作系统文件类型有哪几种
Linux文件类型常见的有:普通文件、目录文件、字符设备文件和块设备文件、符号链接文件等,现在我们进行一个简要的说明。1、普通文件我们用ls-lh来查看某个文件的属性,可以看到有类似-rwxrwxrwx,值得注意的是第一个符号是-,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具…….或cp工具等。这类文件的删除方式是用rm命令。2、目录文件当我们在某个目录下执行,看到有类似drwxr-xr-x,这样的文件就是目录,目录在Linux是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用mkdir命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm或rmdir命令。3、字符设备或块设备文件区块(block)设备文件:就是一些储存数据,以提供系统随机存取的接口设备,举例来说,硬盘与软盘等就是啦。你可以随机的在硬盘的不同区块读写,这种装置就是成组设备。你可以自行查一下/dev/sda看看,会发现第一个属性为[b]。字符(character)设备文件:亦即是一些串行端口的接口设备,例如键盘、鼠标等等。这些设备的特色就是一次性读取的,不能够截断输出。举例来说,你不可能让鼠标跳到另一个画面,而是滑动到另一个地方。第一个属性为[c]。4.数据接口文件(sockets):数据接口文件(或者:套接口文件),这种类型的文件通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求,而客户端就可以透过这个socket来进行数据的沟通了。第一个属性为[s],最常在/var/run这个目录中看到这种文件类型了。5、符号链接文件:当我们查看文件属性时,会看到有类似lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。是通过ln-s源文件名新文件名创建的。这和Windows操作系统中的快捷方式有点相似。
4. 文件描述符是什么
问题一:文件描述符和文件指针的区别 文件描述符:在linux系统中打开文件就会获得文件描述符,它是个很小的正整数。每个进程在PCB(Process Control Block)中保存着一份文件描述符表,文件描述符就是这个表的索引,每个表项都有一个指向已打开文件的指针。 文件指针:C语言中使用文件指针做为I/O的句柄。文件指针指向进程用户区中的一个被称为FILE结构的数据结构。FILE结构包括一个缓冲区和一个文件描述符。而文件描述符是文件描述符表的一个索引,因此从某种意义上说文件指针就是句柄的句柄(在Windows系统上,文件描述符被称作文件句柄)。 问题二:谁能解释一下文件描述符标志? 文件描述符非负整数打现存文件或新建文件内核返文件描述符读写文件需要使用文件描述符指定待读写文件 习惯标准输入(standard input)文件描述符 0标准输(standard output) 1标准错误(standard error) 2尽管种习惯并非 Unix 内核特性些 shell 应用程序都使用种习惯内核遵循种习惯应用程序能使用 POSIX 定义 STDIN_FILENO、STDOUT_FILENO STDERR_FILENO 代替 0、1、2三符号量定义位于文件 unistd.h 文件描述符效范围 0 OPEN_MAX般说每进程打 64 文件(0 ― 63)于 FreeBSD 5.2.1、Mac OS X 10.3 Solaris 9 说每进程打文件少取决于系统内存int 及系统管理员设定限制 问题三:文件描述符的定义数量 如何在不同平台上定义文件描述符的数量文件描述符极限以及可分配给进程的最大大小由资源限制来定义。这些值应当按照在WebLogicServer文档中建议的、特定于操作系统的文件描述符值来设置:对于WLS8.1:调整硬件、操作系统和网络性能对于WLS7.0:调整硬件、操作系统和网络性能对于WLS6.1:调整硬件、操作系统和网络性能Unix和Linux都有文件描述符。不过,二者的主要区别在于如何设置文件描述符的硬极限值、缺省值和配置过程。Solaris/usr/bin/ulimit实用程序定义允许单个进程使用的文件描述符的数量。它的最大值在rlim_fd_max中定义,在缺省情况下,它设置为65,536。只有root用户才能修改这些内核值。Linux管理用户可以在etc/security/limits.conf配置文件中设置他们的文件描述符极限,如下例所示。softnofile1024hardnofile4096系统级文件描述符极限还可以通过将以下三行添加到/etc/rc.d/rc.local启动脚本中来设置:#Increasesystem-widefiledescriptorlimit.echo4096>/proc/sys/fs/file-maxecho16384>/proc/sys/fs/inode-maxWindows在Windows操作系统上,文件描述符被称作文件句柄。在Windows2000服务器上,打开文件的句柄极限设置为16,384。此数量可以在任务管理器的性能摘要中监视。HP-UXnfile定义打开文件的最大数量。此值通常由以下公式来确定:((NPROC*2)+1000),其中NPROC通常为:((MAXUSERS*5)+64)。如果MAXUSERS等于400,则经过计算得到此值为5128。通常可以将此值设高一些。maxfiles是每个进程的软文件极限,maxfiles_lim是每个进程的硬文件极限。AIX文件描述符极限在/etc/security/limits文件中设置,它的缺省值是2000。此极限可以通过ulimit命令或setrlimit子例程来更改。最大大小由OPEN_MAX常数来定义。 问题四:文件描述符可以是0吗 文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。 第一个打开的文件是0,第二个是1,依此类推。Unix 操作系统通常给每个进程能打开的文件数量强加一个限制。更甚的是,unix 通常有一个系统级的限制。 os.chinauni 问题五:如何判断文件描述符在fd open 一个文件将返回一个文件描述符。 0 – 返回的文件描述符 就是已经打开的。 /proc/pid/fd 下面为该进程打开的文件描述符 如果我的回答没能帮助您,请继续追问。 问题六:Linux查看进程打开多少文件描述符命令 linux系统下查看进程打开文件在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件,有多少个文件描述符表示该进程打开了多少文件。 另外Linux 默认的进程打开文件上限是1024个,可以通过ulimit -n查看。很多系统上限可以通过修改/etc/security/limits.conf文件改变,这个文件有详细的注释,对如何修改做了说明。如果希望 把所有用户的进程打开文件上限改为65536,可以加入下面两行 * soft nofile 65535 * hard nofile 65535 还可以只真对某个用户或某个组做修改,具体方法参见文件注释。修改后需要重新启动系统才能生效。 问题七:linux 文件描述符 3是什么?例如 0 1 2代表标准的输出输入和出错,但是3,4又是什么的呢? 其他已经被打开的文件 问题八:文件描述符挂起是什么意思 具体操作,需要修改两处,并且需重新启动Linux服务器。首先SSH登录服务器,执行ulimit-a查看当前限制。这一步是可选,主要是看下限制,心里有数。第一处修改:vim/etc/security/limits.conf在文件尾部增加:*softnofile65535*hardno 问题九:有人了解java与linux文件描述符之间的关系吗 linux文件描述符? 可以认为是linux下的任务管理中打开文件的索引表,是系统中使用的。。。。。。。java是一个平台、一种编程语言。。。。。。不知道要怎么比较了。 问题十:文件描述符fb和tcp连接数有什么关系 C10K的问题在上个世纪90年代就被提出来了。大概的意思是当用户数超过1万时,很多设计不良好的网络服务程序性能都将急剧下降、甚至瘫痪。并且,这个问题并不能通过升级硬件设备解决,是操作系统固有的问题,也就是说,如果你的服务器最高能支撑1000个并发,尽管你升级了计算能力高一倍的 cpu,内存再翻一番,硬盘转速在快一倍,也无法支撑2000个并发。 经典的网络编程模型有4个: 1. Serve one client with each thread/process, and use blocking I/O。即对每个客户都使用不同的线程或进程进行服务,在每个线程或进程中使用阻塞I/O。这是小程序和java常用的策略,对于交互式的应用也是常见的选择,这种策略很能难满足高性能程序的需求,好处是实现极其简单,容易实现复杂的交互逻辑。我们常用的Apache、ftpd等都是这种工作。 2. Serve many clients with single thread, and use nonblocking I/O and readiness notification。即对所有的客户使用单一一个线程或进程进行服务,在这个线程或进程里,采用异步IO的策略。这是经典模型,优点在于实现较简单,方便移植,也能提供足够的性能;缺点在于无法充分利用多CPU的资源。 3. Serve many clients with each thread, and use nonblocking I/O and readiness notification 对经典模型2的简单改进,仍然采用异步IO的策略,但对所有的客户使用多个线程或进程进行服务。缺点是容易在多线程并发上出bug,甚至某些OS不支持多线程进行readiness notification 4. Serve many clients with each thread, and use asynchronous I/O 在有AI/O支持的OS上,能提供相当高的性能。不过AI/O编程模型和经典模型差别相当大,基本上很难写出一个框架同时支持AI/O和经典模型。这个模型主要是用于window平台上。
5. linux文件类型有哪些
linux文件类型:管道文件、链接文件、普通文件、目录文件、套接字文件、块设备、字符设备
6. 在linux中用fopen打开文件,有三个文件指针指向该文件,但指针位置不同,关闭其中一个指针关闭该文件爱
打开文件有不同的方式。例如:FILE * fp1, * fp2, *fp3; fp1=fopen(file1, "r"); fp2=fopen(file2, "a+);fp3=fopen(file3, "w"); 最后要用:fclose(fp1); fclose(fp2); fclose(fp3); 才保险。/* fp1: 只读方式回、fp2: 添加方式、fp3: 只写方式 */像你这么用答程序会出问题的。
7. linux 中 open和fopen的区别
Linux中open与fopen区别如下:
1、来源
从来源的角度看,两者能很好地区分开,这也是最显而易见的区别:
①open是Unix系统调用函数,返回的是文件描述符,它是文件在文件描述符表里的索引;
②fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api。返回的是一个指向文件结构的指针。
2、移植性
这一点从上面的来源可以推断出来,fopen是C标准函数,因此拥有良好的移植性,而open是Unix系统调用,移植性有限。如Windows下相似的功能使用API函数CreateFile。
3、适用范围
①open返回文件描述符,而文件描述符是Unix系统下的一个重要概念,Unix下的一切设备都是以文件的形式操作。如网络套接字、硬件设备等。当然包括操作普通正规文件。
②fopen是用来操纵普通正规文件。
4、文件IO层次
如果从文件IO的角度来看,前者属于低级IO函数,后者属于高级IO函数。低级和高级的简单区分标准是:谁离系统内核更近。低级文件IO运行在内核态,高级文件IO运行在用户态。