我有这段代码:
#include <stdio.h>
int main ( int argc, char *argv[] )
{
FILE *file;
int x;
if ( argc != 2 )
printf( "Use: %s file name", argv[0] );
else {
if ((file=fopen( argv[1], "r" ))== 0 )
printf( “Couldn't open the file.\n" );
else {
while (( x = fgetc( file ) ) != EOF) printf( "%c", x );
fclose( file );
}
}
return 0;
}
现在,有了这段代码,我如何从终端执行文件(即图片以及我的NetBeans配置)。 http://i.stack.imgur.com/6WRh3.png
答案 0 :(得分:4)
首先,更好地替换你的陈述(在你上面的程序中)
printf( “Couldn't open the file.\n" );
带
perror(argv[1]);
然后,只需编译您的终端中的程序,例如键入一个类似于
的shell命令gcc -Wall -g mysource.c -o myprog
(了解有关invoking GCC的更多信息:-Wall
选项几乎要求所有警告并且非常有用 - 所以永远不要错过它 - 你甚至可以添加-Wextra
以获取更多警告; -g
要求DWARF可执行文件中的ELF调试信息,并允许您稍后使用gdb
)
假设您的源代码位于当前working directory中名为mysource.c
的文件中(使用pwd
命令查询当前目录,ls -al
列出它,以及{ {1}}内置命令来改变它)
最后,运行您的程序
cd
./myprog sometestfile.txt
(我猜您是在Linux 或其他一些符合POSIX标准的操作系统,并使用GCC编译器) < / p>
详细了解perror(3),command line interface,shells,globbing,glob(7),PATH
variable
稍后,你会想要在几个translation units中创建一些更大的程序,有一些共同的头文件(在所有这些文件中都是gdb ./myprog
d)。然后你将使用像GNU make这样的构建器。你可以使用像emacs这样的好编辑器,像git那样的版本控制等等......
(您可能会发现NetBeans不是很有用,因为您可以通过 自己的集合工具获得更好的开发舒适度;可以自由地使用选择你的工具是值得的!)
PS。也许用更短更高效的#include
...
printf( "%c", x );