【发布时间】:2009-07-24 06:57:07
【问题描述】:
我一直在编写一些较旧的 C 代码。我发现有相当多的 POSIX 调用现在已经过时,并在手册页中标记为 deprecated。
检查代码中是否仍有已弃用的 POSIX 调用的最佳方法是什么?我正在考虑:
- 特殊的 gcc 警告 选项。
- 某种 lint 工具检测这些调用。
【问题讨论】:
我一直在编写一些较旧的 C 代码。我发现有相当多的 POSIX 调用现在已经过时,并在手册页中标记为 deprecated。
检查代码中是否仍有已弃用的 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);
我怀疑您是否需要一个成熟的解析器类型的工具。
【讨论】: