C语言有和shell联系的函数吗

sh/bash/dash/ksh/zsh等Shell脚本
头像
huoteihj
帖子: 340
注册时间: 2010-11-25 20:44

Re: C语言有和shell联系的函数吗

#16

帖子 huoteihj » 2012-01-30 7:48

lilydjwg 写了:
cjxgm 写了:顶 popen

popen 使用起来类似 fopen,但是参数不是文件名而是命令名
+1,已经有封装好的函数,不需要用原始的系统调用。
另外,何不用 shell 完成这个简单的活儿:
[bash]
for((i=1;i<255;i++)); do
ping 192.168.1.$i
done
[/bash]
另外,nmap 命令应该也能完成这个任务。
因为没有学过shell语言
头像
josephyoung
帖子: 158
注册时间: 2011-11-05 18:53
来自: 南极圈

Re: C语言有和shell联系的函数吗

#17

帖子 josephyoung » 2012-01-30 13:11

nmap就是专门干这个用,重复发明轮子什么的最讨厌了
例如

代码: 全选

nmap -sP 192.168.1.0/24
头像
huoteihj
帖子: 340
注册时间: 2010-11-25 20:44

Re: C语言有和shell联系的函数吗

#18

帖子 huoteihj » 2012-01-30 16:14

josephyoung 写了:nmap就是专门干这个用,重复发明轮子什么的最讨厌了
例如

代码: 全选

nmap -sP 192.168.1.0/24
这个是次要,最重要的是学c语言,练习一下
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: C语言有和shell联系的函数吗

#19

帖子 lilydjwg » 2012-01-30 16:27

huoteihj 写了: 这个是次要,最重要的是学c语言,练习一下
你不觉得更重要的是先学点 shell 吗?
另外,Linux C 编程一站式教程很不错。
头像
huoteihj
帖子: 340
注册时间: 2010-11-25 20:44

Re: C语言有和shell联系的函数吗

#20

帖子 huoteihj » 2012-01-31 7:42

lilydjwg 写了:
huoteihj 写了: 这个是次要,最重要的是学c语言,练习一下
你不觉得更重要的是先学点 shell 吗?
另外,Linux C 编程一站式教程很不错。
你说那个教程在哪?
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: C语言有和shell联系的函数吗

#21

帖子 fanhe » 2012-01-31 12:01

你这样还不如用个 ping 的 c 库,直接返回 c 的数据结构作为结果
何必这样折腾来折腾去的
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: C语言有和shell联系的函数吗

#22

帖子 lilydjwg » 2012-01-31 16:13

fanhe 写了:你这样还不如用个 ping 的 c 库,直接返回 c 的数据结构作为结果
何必这样折腾来折腾去的
这样还真不行,因为 ping 需要 root 权限的。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: C语言有和shell联系的函数吗

#23

帖子 lilydjwg » 2012-01-31 16:19

huoteihj 写了:
lilydjwg 写了:
huoteihj 写了: 这个是次要,最重要的是学c语言,练习一下
你不觉得更重要的是先学点 shell 吗?
另外,Linux C 编程一站式教程很不错。
你说那个教程在哪?
Google is your friend.
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: C语言有和shell联系的函数吗

#24

帖子 tusooa » 2012-02-06 18:04

lilydjwg 写了:
cjxgm 写了:顶 popen

popen 使用起来类似 fopen,但是参数不是文件名而是命令名
+1,已经有封装好的函数,不需要用原始的系统调用。
另外,何不用 shell 完成这个简单的活儿:
[bash]
for((i=1;i<255;i++)); do
ping 192.168.1.$i
done
[/bash]
另外,nmap 命令应该也能完成这个任务。
要ping -c 吧。不然会无限ping的。

代码: 全选

] ls -ld //
回复