问一个感觉和简单的问题
#include"apue.h"
#include<fcntl.h>
int main(int argc,char *argv[])
{
int val;
if(argc!=2)
err_sys("Usage:./list3_4 filename");
if((val=fcntl(atoi(argv[1]),F_GETFL,0))<0) //程序的开头 请问atoi(argv[1])怎么理解,可以用argv[1]作为参数?atoi函数能把文件名转换成文件描述符?
err_sys("fcntl error");
先谢谢了!
[解决办法]
假如你在终端运行程序的时候用./a.out,那么这个./a.out 其实就是一个命令行参数,命令行的参数可以时个,这些命令行参数都被保存在*arv[]这个数组里面,argc则存的是命令行参数的个数,假如你执行./a.out 3 来运行程序的话,那么argc就是2, argv[0] 就是./a.out ,argv[1]就是3,以此类推
[解决办法]
argv[] 是程序运行时通过命令行传入的参数
想怎么处理,是需要代码来实现的
[解决办法]
楼上说的对。楼主自己调试跟踪一下,不就知道了。
[解决办法]
*argv[]
假设内容是{"www","2","xxx"}
那么argv[0]是字符串"www"的指针。
argv[1]就是字符串"2"的指针。
int atoi( const char *string );
这是atoi的函数原型。
int fcntl(int fd,int cmd,long arg);
估计这个是fcntl的函数原型。
这个从表面上看来没什么错误。
所以你不理解的东西应该要去看这个程序输入的参数到底是什么。