我一直在研究一些旧的C代码。我发现有相当多的POSIX调用已经过时,并在手册页中标记为已弃用。检查C代码是否已弃用POSIX调用的最佳方法是什么?
什么是最好的方法来检查代码中是否仍有不推荐使用的POSIX调用?我在想:
- 特殊gcc警告选项。
- 某种lint检测这些调用的工具。
我一直在研究一些旧的C代码。我发现有相当多的POSIX调用已经过时,并在手册页中标记为已弃用。检查C代码是否已弃用POSIX调用的最佳方法是什么?
什么是最好的方法来检查代码中是否仍有不推荐使用的POSIX调用?我在想:
我的第一次尝试是使用grep
的简单工具(即使它可能会导致误报)。
>> cd src_dir
>> cat deprecated_calls
printf
strcpy
>> for i in $(cat deprecated_calls) ; do
+> grep -R $i .
+> done
binmath.c:printf (" 0 sum:[%s]\n",sum);
binmath.c:printf (" 100 sum:[%s]\n",sum);
binmath.c:printf (" 200 sum:[%s]\n",sum);
binmath.c:printf (" 300 sum:[%s]\n",sum);
qq.c:printf("%d %d %d\n",i,j,k);
xx.c: fprintf (stderr, "Cannot open 'words.txt', error = %d\n", errno);
binmath.c:strcpy (buff, "0");
oldstuff/qq.c:printf("%d %d %d\n",i,j,k);
我怀疑你需要一个完整的解析器类型的工具。
我们可以在这里推荐ack吗?如果OP可以访问Perl,ack将挽救生命。 – 2009-07-24 07:20:56