邮箱是119362045@qq.com
9 个解决方案
#1
touch我只知道可以创建文件,好像还可以改变文件的啥属性,你可以用create+fcntl综合试试实现
#2
下个coreutils源码包,目录src/touch.c现成的。
#3
既然要自己编一个,那就要尽量自己解决咯。
#4
不要看源码,自己先考虑应该怎样实现,可以参考《UNIX高级环境编程》来选择使用哪些系统函数,然后不断的修改,调试
#5
解析命令行可以用getopt或者getopt_long。
strace命令可以跟踪程序调用了哪些API。
比如:strace touch -t 201201011010 newtest.c
自己写完了再和coreutils的对比一下,看看哪个更好。
另外,参考busybox里的实现也可以,busybox里的实现相对简单。
strace命令可以跟踪程序调用了哪些API。
比如:strace touch -t 201201011010 newtest.c
自己写完了再和coreutils的对比一下,看看哪个更好。
另外,参考busybox里的实现也可以,busybox里的实现相对简单。
#6
各路神仙,帮帮忙吧!我自己是在是没什么思路
#7
各路神仙,帮帮忙啊!没思路啊!
#8
先确定要哪些功能,是完全和touch一样的支持他的所有参数 ,还是部分。
然后先写出解析参数的函数, 解析后怎么存放
再写最简单的创建文件的函数 .
然后在像APUE书或者网上查找下什么函数能修改文件的时间,再编写这个相应的功能。
然后先写出解析参数的函数, 解析后怎么存放
再写最简单的创建文件的函数 .
然后在像APUE书或者网上查找下什么函数能修改文件的时间,再编写这个相应的功能。
#9
简单点说就是touch的实现功能是通过传入main的参数确定的
1. 解析传入的参数。
2. 对每种参数都写个相应的函数 (当然有的参数可以组合起来在一个函数中实现)
比如 -a 参数 是修改文件file的存取时间, 那么可以使用linux中的一个API , utime实现修改文件的最后访问时和修改时间来实现 ,, 具体的用man utime查询用法..
-c不创建文件,
-m修改文件
-t使用指定的时间值, 也可以用utime实现
等等 。
先从解析命令参数开始吧。
1. 解析传入的参数。
2. 对每种参数都写个相应的函数 (当然有的参数可以组合起来在一个函数中实现)
比如 -a 参数 是修改文件file的存取时间, 那么可以使用linux中的一个API , utime实现修改文件的最后访问时和修改时间来实现 ,, 具体的用man utime查询用法..
-c不创建文件,
-m修改文件
-t使用指定的时间值, 也可以用utime实现
等等 。
先从解析命令参数开始吧。
#1
touch我只知道可以创建文件,好像还可以改变文件的啥属性,你可以用create+fcntl综合试试实现
#2
下个coreutils源码包,目录src/touch.c现成的。
#3
既然要自己编一个,那就要尽量自己解决咯。
#4
不要看源码,自己先考虑应该怎样实现,可以参考《UNIX高级环境编程》来选择使用哪些系统函数,然后不断的修改,调试
#5
解析命令行可以用getopt或者getopt_long。
strace命令可以跟踪程序调用了哪些API。
比如:strace touch -t 201201011010 newtest.c
自己写完了再和coreutils的对比一下,看看哪个更好。
另外,参考busybox里的实现也可以,busybox里的实现相对简单。
strace命令可以跟踪程序调用了哪些API。
比如:strace touch -t 201201011010 newtest.c
自己写完了再和coreutils的对比一下,看看哪个更好。
另外,参考busybox里的实现也可以,busybox里的实现相对简单。
#6
各路神仙,帮帮忙吧!我自己是在是没什么思路
#7
各路神仙,帮帮忙啊!没思路啊!
#8
先确定要哪些功能,是完全和touch一样的支持他的所有参数 ,还是部分。
然后先写出解析参数的函数, 解析后怎么存放
再写最简单的创建文件的函数 .
然后在像APUE书或者网上查找下什么函数能修改文件的时间,再编写这个相应的功能。
然后先写出解析参数的函数, 解析后怎么存放
再写最简单的创建文件的函数 .
然后在像APUE书或者网上查找下什么函数能修改文件的时间,再编写这个相应的功能。
#9
简单点说就是touch的实现功能是通过传入main的参数确定的
1. 解析传入的参数。
2. 对每种参数都写个相应的函数 (当然有的参数可以组合起来在一个函数中实现)
比如 -a 参数 是修改文件file的存取时间, 那么可以使用linux中的一个API , utime实现修改文件的最后访问时和修改时间来实现 ,, 具体的用man utime查询用法..
-c不创建文件,
-m修改文件
-t使用指定的时间值, 也可以用utime实现
等等 。
先从解析命令参数开始吧。
1. 解析传入的参数。
2. 对每种参数都写个相应的函数 (当然有的参数可以组合起来在一个函数中实现)
比如 -a 参数 是修改文件file的存取时间, 那么可以使用linux中的一个API , utime实现修改文件的最后访问时和修改时间来实现 ,, 具体的用man utime查询用法..
-c不创建文件,
-m修改文件
-t使用指定的时间值, 也可以用utime实现
等等 。
先从解析命令参数开始吧。