当前位置: 技术问答>linux和unix
菜鸟提问:关于linux(unix)c语言编程问题?
来源: 互联网 发布时间:2015-02-11
本文导语: 菜鸟提问:关于linux(unix)c语言编程问题? 我是湖北的自考生,要考操作系统,用的是华中科技大学的书,现在有关于linux编程的几个问题: 1。 main() { int i; i=fork(); while((i=fork()==-1) { ...
菜鸟提问:关于linux(unix)c语言编程问题?
我是湖北的自考生,要考操作系统,用的是华中科技大学的书,现在有关于linux编程的几个问题:
1。
main()
{
int i;
i=fork();
while((i=fork()==-1)
{
printf("创建进程失败n");
exit(1);
}
if(i)
{
printf("这是子进程第一次调度n");
exit(1);
}
else
printf("这是父进程");
}
以上两句printf("这是子进程第一次调度n");printf("这是子进程第一次调度n");按照作者的意图是不是恰好写反了?
2。gcc编译程序时我用gcc -o file file.c生成的file应该是可执行文件吧!但是为什么不能直接运行,非得到gdb中用run。
如果这个不是可执行文件的话,那还要那些步骤了??
3。gdb file调试程序时,我用list为什么不能显示代码,另外break point设置断点也不行。它说什么×××。c没找到??
希望有人能解答,哪怕就答一个问题!
我是湖北的自考生,要考操作系统,用的是华中科技大学的书,现在有关于linux编程的几个问题:
1。
main()
{
int i;
i=fork();
while((i=fork()==-1)
{
printf("创建进程失败n");
exit(1);
}
if(i)
{
printf("这是子进程第一次调度n");
exit(1);
}
else
printf("这是父进程");
}
以上两句printf("这是子进程第一次调度n");printf("这是子进程第一次调度n");按照作者的意图是不是恰好写反了?
2。gcc编译程序时我用gcc -o file file.c生成的file应该是可执行文件吧!但是为什么不能直接运行,非得到gdb中用run。
如果这个不是可执行文件的话,那还要那些步骤了??
3。gdb file调试程序时,我用list为什么不能显示代码,另外break point设置断点也不行。它说什么×××。c没找到??
希望有人能解答,哪怕就答一个问题!
|
对于1。你的说法是正确的。
对于2。我想应该是已经执行了,只不过你没有看到输出而已,你可以 ps -ef | grep file 察看一下是否在运行。
对于3。你不能进行调试,是因为你在编译、链接的时候没有使用调试选项,没有产生应有的调试信息。所以没有办法调试。你可以这样编译、链接:
gcc -c -g file.c
gcc -o file file.o
对于2。我想应该是已经执行了,只不过你没有看到输出而已,你可以 ps -ef | grep file 察看一下是否在运行。
对于3。你不能进行调试,是因为你在编译、链接的时候没有使用调试选项,没有产生应有的调试信息。所以没有办法调试。你可以这样编译、链接:
gcc -c -g file.c
gcc -o file file.o
|
1.书错了
2。用./file实施
3。如果需要调试需要加上-g选项 gcc -g -o file file.c
2。用./file实施
3。如果需要调试需要加上-g选项 gcc -g -o file file.c