Two tools give the adjusted p-values for multiple testing.

DESeq used Benjamin-Hochberg correction and edgeR uses FDR. According to wikipedia Benjamin-Hochberg is the same as FDR. So, the correction is the same, but the names are different, right?

Also, how do those tools calculate FDR? According to wiki it is false_positives/(false_positives + true positives). But how can one find if false positives are really false positives? There are just genes with their p-values and one does not know if the top genes are true positives or false positives. How one can know if the state of the null hypothesis one a gene is declared to be significant?

Just to clarify. The Benjamini-Hochberg algorithm doesn't estimate the FDR. Rather it computes an upper bound for the expected FDR. (That is why the limma and edgeR packages always say "controlling" the FDR rather than "estimating" it.) There is no approximation involved -- it is an exact mathematical result.

Thanks, that's an important clarification. I'll edit my answer.